release please
是一個來自於 Google
的自動發版工具,基於 Github Actions
可實現全自動發版。
官網:https://github.com/googleapis/release-please
上手
在項目根目錄的 .github
的 workflows
裏面新建一個 release-please.yml
文件,下面是一個標準的 node
項目的標準配置:
on:
push:
branches:
- main
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: node
package-name: release-please-action
# Checkout
- uses: actions/checkout@v3
if: ${{ steps.release.outputs.release_created }}
# Setup node
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: 'https://registry.npmjs.org'
if: ${{ steps.release.outputs.release_created }}
# Setup pnpm
- uses: pnpm/action-setup@v2
if: ${{ steps.release.outputs.release_created }}
# Install dependencies
- run: pnpm install
if: ${{ steps.release.outputs.release_created }}
# Build output
- run: pnpm build
if: ${{ steps.release.outputs.release_created }}
# Publish to npm
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
if: ${{ steps.release.outputs.release_created }}
提交之後,正常情況就會在 main
分支的 push
事件觸發之時,啓動自動發版,包括髮布到 npm
倉庫。
注意 1:任務運行完畢後並不是直接就發版了,而是會新建一個 pr,可以檢查 pr 內容,需要發版,就合併。如果暫時不發版,可以直接關閉這個 pr。
注意 2:pr 會自動遞增版本號,所以不要提前手動更改版本號。node 項目的版本號是 package.json 裏面的 version 字段,格式是:x.x.x 。
版本號規則是:
feat:->大版本,例如:1.0.0->1.1.0
fix:->小版本,例如:1.0.0->1.0.1
feat!:, fix!:, refactor!:->主要版本,例如:1.0.0->2.0.0
如果從未發過版本,那麼初始是 1.0.0
。
另外,如果不需要發佈到 npm
,可以使用下面的配置:
on:
push:
branches:
- main
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: node
package-name: release-please-action
注意事項
-
配置 npm token (可選,如果不需要發佈到 npm 可忽略)
去 https://www.npmjs.com/settings/terwer/tokens 申請一個
token
,然後再項目裏面設置:Settings -> Secrets and variables -> Actions ->
New repository secret
,新建一個即可。 -
Github
倉庫權限設置注意:默認的 Github 倉庫不允許拉取,需要開啓權限纔行。方法如下:
轉到
https://github.com/OWNER/REPO/settings/actions
頁面向下劃到 Workflow Permissions 然後切換到 Read and Write permissions 。
文章更新歷史
2023-03-06 feat:初稿