Github-Actions使用release-please實現自動發版

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:初稿

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章