效果:新增一個 v 開頭的 Tag,等 Action 結束之後該 Release 會獲得相對應的 Release 壓縮檔案。

步驟

新增檔案.github/workflow/Release.yml

name: Release

# 新增 tag 的時候觸發
on:
  push:
    tags:
      - "*"
# 讓 workflow 獲得上傳檔案的權限
permissions:
  contents: write

jobs:
  build:
    runs-on: ubuntu-latest
    # 判斷 tag 如果是 v 開頭才繼續
    if: startsWith(github.ref, 'refs/tags/v')
    steps:
      # 取得 Git 中的原始碼
      - uses: actions/checkout@v3
      # 編譯
      - name: Build SPA
        run: yarn && yarn build && mv dist/ app/
      # 壓縮編譯檔
      - name: Compress
        run: zip -r app.${{ github.ref_name }}.zip ./app
      # 建立 Release 、上傳檔案
      - name: Create Release and Upload Release Asset
        uses: softprops/action-gh-release@v1
        with:
          tag_name: ${{  github.ref_name }} 
          name: ${{ github.ref_name }}
          body: ${{ github.ref_name }}
          draft: false
          prerelease: false
          files: app.${{ github.ref_name }}.zip