◾️はじめに
https://dk521123.hatenablog.com/entry/2025/10/11/152333
の続き。 今回は、semantic-release に関して設定してみる 思ったより、簡単にできた、、、
目次
【1】Semantic Release (semantic-release) 【2】semantic-releaseの導入 Step1:プロジェクトの準備と依存関係のインストール Step2:semantic-releaseの設定ファイル作成 Step3:GitHubトークンの設定(GitHub Secrets) Step4:GitHub Actionsワークフローの作成 【3】使い方 1)【任意】v0.X.Xから始めたい場合 2)Releaseをしてみる
【1】Semantic Release (semantic-release)
* まず、復習。。。
https://dk521123.hatenablog.com/entry/2025/10/11/152333
より抜粋 * Conventional Commits に基づいてリリースを完全自動化 + 例: feat: 新機能追加, fix: バグ修正 * npx semantic-release でリリース処理を実行 * 自動で: + バージョン番号決定 + Gitタグ作成 + リリースノート生成 + npm/pypiなどへの公開(任意)
https://github.com/semantic-release/semantic-release
【2】semantic-releaseの導入
* 対象のGithubプロジェクトに対して以下を行う
Step1:プロジェクトの準備と依存関係のインストール
# 以下を実行 npm install --save-dev semantic-release @semantic-release/github @semantic-release/git @semantic-release/changelog @semantic-release/commit-analyzer @semantic-release/release-notes-generator
.gitignore
# Ignore node_modules node_modules/
Step2:semantic-releaseの設定ファイル作成
{ "branches": [ "main", "master" ], "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", [ "@semantic-release/changelog", { "changelogFile": "CHANGELOG.md" } ], [ "@semantic-release/git", { "assets": ["package.json", "CHANGELOG.md"], "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ], "@semantic-release/github" ] }
| Items | Explanations |
|---|---|
| branches | リリースをトリガーするブランチを指定(例: mainやmaster) |
| plugins | 実行するプラグインとその順序を設定。@semantic-release/gitは、生成されたCHANGELOG.mdをコミットするために使用され、[skip ci]を含むことで無限ループを防ぐ |
Step3:GitHubトークンの設定(GitHub Secrets)
[1] GitHubリポジトリの「Settings」に移動 [2] 「Secrets and variables」から「Actions」を選択 [3] 「Repository secrets」または「Environment secrets」セクションで、 GITHUB_TOKEN(または任意の名前、例: GH_TOKEN)というシークレットを設定
Step4:GitHub Actionsワークフローの作成
.github/workflows/
name: Release on: push: branches: - main # または master jobs: release: name: Release runs-on: ubuntu-latest # ⚠️ ここで権限を設定することが重要 permissions: contents: write # リリースとタグを作成するために必要 issues: write # リリースに関連するIssueにコメントするために必要 (オプション) pull-requests: write # リリースに関連するPRにコメントするために必要 (オプション) steps: - name: Checkout uses: actions/checkout@v6 with: # semantic-releaseは過去のコミット履歴を分析するため、full historyを取得します fetch-depth: 0 # persist-credentials: false は、@semantic-release/gitプラグインで独自の認証を使用する場合に推奨されます persist-credentials: false - name: Set up Node.js uses: actions/setup-node@v6 with: node-version: '24' # 使用するNode.jsのバージョンを指定 - name: Install dependencies run: npm ci - name: Run semantic-release run: npx semantic-release env: # GITHUB_TOKENはActionsによって自動的に提供されるSecretsを使用します GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
【3】使い方
1)【任意】v0.X.Xから始めたい場合
# タグの作成 git tag v0.0.0 # Push git push origin v0.0.0
2)Releaseをしてみる
* * mainブランチにPushするだけ => PushするとRelease・タグが更新されていく * コメントは、Semantic Versioningに従う方がいい
Semantic Versioning / Conventional Commits
https://dk521123.hatenablog.com/entry/2025/03/31/153442
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
リリース自動化ツール 〜 release-please / 入門編 〜
https://dk521123.hatenablog.com/entry/2025/10/11/152333
Semantic Versioning / Conventional Commits
https://dk521123.hatenablog.com/entry/2025/03/31/153442