使用 GitHub Action 自動發布 NuGet 套件

在上一篇 建立 NuGet 套件,上傳到 nuget.org 文章中, 我們需要手動下指令打包、將 .nupkg 檔案上傳到 NuGet.org 中來發布套件。

每次更新都需要重複一次,但是我們可以使用 GitHub Action ,在達成特定的條件時自動執行指令發佈套件。 進到 GitHub 的 Repository 中,點選 Settings > Security > Actions > Repository secrets ,點選 New repository secret

將上一篇文章中 NuGet 的 API Key 放在這裡,我們命名為 NUGET_API_KEY

在專案中根目錄下依照以下路徑建立 publish.yml 檔案:
    
.github/workflows/publish.yml
    

檔案內容如下:
    
name: publish to NuGet

on:
  push:
    tags:
      - "v*.*.*"

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'

      - name: Restore Dependencies
        run: dotnet restore

      - name: Build Solution
        run: dotnet build --configuration Release --no-restore

      - name: Pack NuGet Package
        run: dotnet pack --configuration Release --no-build --output nupkgs

      - name: Publish to NuGet
        run: dotnet nuget push nupkgs/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
    

上面的意思是只要使用 vx.x.x 格式,例如 v1.0.0 這樣格式建立的 tag ,就會自動觸發 GitHub Action ,執行發布的動作。

文章撰寫中...請稍後...

參考資料:
GitHub.Docs - Using secrets in GitHub Actions
GitHub.Marketplace Actions - Setup .NET Core SDK
GitHub.Marketplace Actions - Publish NuGet
GitHub.Docs - Understanding GitHub Actions
GitHub - actions/checkout

留言