在 GitHub 建立一個 “Release”,GitHub 就會自動幫你發佈到 PyPI

採用 Trusted Publishing 最大的好處就是 安全性高且不需要手動管理密碼或 Token。

要完成這項設定,我們需要分兩步進行:

  1. 在你的專案中建立 GitHub Action 設定檔(這部分我可以幫你做)。
  2. 在 PyPI 官網設定「信任」你的 GitHub 專案(這部分需要你手動操作一次)。

第一步:建立 GitHub Action 設定檔

我將為你建立 .github/workflows/publish.yml。這個腳本會在你在 GitHub 上建立新的
“Release”(發佈版本)時,自動執行建置並上傳到 PyPI。

我現在就幫你建立這個檔案(publish.yml)。

name: Publish to PyPI

on:
  release:
    types: [published]

jobs:
  build-n-publish:
    name: Build and publish to PyPI
    runs-on: ubuntu-latest
    permissions:
      # 這是在 Trusted Publishing 中取得 PyPI ID Token 的必要權限
      id-token: write
      contents: read

    steps:
    - uses: actions/checkout@v4
    
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.10'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install build

    - name: Build sdist and wheel
      run: python -m build

    - name: Publish to PyPI
      uses: pypa/gh-action-pypi-publish@release/v1

✦ 第二步:在 PyPI 官網設定「信任」你的 GitHub 專案

這部分我無法自動幫你做,因為它需要你在瀏覽器中登入 PyPI 官網。請跟著以下簡單的步驟:

  1. 登入 PyPI 官網 (https://pypi.org/manage/account/publishing/)。
  2. 找到 “Trusted Publishing” 區段,點擊 “Add a new publisher” 並選擇 “GitHub”。
  3. 填入以下資訊:
    • GitHub Repository Owner: max32002 (這是你的 GitHub 帳號)。
    • Repository Name: blog-pro-max (這是你的專案名稱)。
    • Workflow Name: publish.yml (這是我們剛才建立的檔名)。
    • Environment Name: (可以留空)。

未來如何更新到 PyPI?

只要你完成上面的一次性設定,以後要更新 PyPI,你只需要:

  1. 在 GitHub 專案首頁點擊 “Releases”。
  2. 點擊 “Create a new release”。
  3. 設定一個 Tag(例如 v1.0.3),然後點擊 “Publish release”。 剩下的事 GitHub 就會自動幫你完成上傳到 PyPI 了!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *