いろんな記事がネットに落ちているけれど、upmでsemantic-release使いたかったので自分用の設定メモ.
Assets/WavEffector/package.json
にて upmの設定ファイルがあるとするとき...
下記で行けた.
プロジェクト
試してみたプロジェクト
設定
github actionの設定
.github/workflows/publish_release.yml
name: "Publish release"
on:
workflow_dispatch: {}
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: Install dependencies
working-directory: Assets/WavEffector
run: |
npm install -g -D semantic-release
npm install -g -D @semantic-release/git
npm install -g -D @semantic-release/github
npm install -g -D @semantic-release/release-notes-generator
npm install -g -D @semantic-release/commit-analyzer
npm install -g -D @semantic-release/npm
- name: Release
working-directory: Assets/WavEffector
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: semantic-release
semantic-releaseの設定
Assets/WavEffector/.releaserc.json
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/npm", {
"npmPublish": false
}],
"@semantic-release/github",
["@semantic-release/git", {
"assets": ["package.json"]
}]
],
"branches": [
"master"
]
}
ポイント
-
.releaserc.json
を配置することで、package.json
に記載しなくてもsematic-releaseのルールを記載できる. - upmなので、
"npmPublish": false
にしてる. - plugin順もそこそこ大事. 最後に
@semantic-release/git
もってくることで、release note等にpackage.jsonのコミットは含まない感じにしている. - あと
npx semantic-release
だと@semantic-release/git
がないって怒られるので、全部手動でinstallしてる
実行
GithubActionsのページで、Run workflowすればOK.
package.jsonの更新と、git tagのversioning. release noteの自動作成を行ってくれる!
超便利だ!