
採用 Trusted Publishing 最大的好處就是 安全性高且不需要手動管理密碼或 Token。
要完成這項設定,我們需要分兩步進行:
- 在你的專案中建立 GitHub Action 設定檔(這部分我可以幫你做)。
- 在 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 官網。請跟著以下簡單的步驟:
- 登入 PyPI 官網 (https://pypi.org/manage/account/publishing/)。
- 找到 “Trusted Publishing” 區段,點擊 “Add a new publisher” 並選擇 “GitHub”。
- 填入以下資訊:
- GitHub Repository Owner: max32002 (這是你的 GitHub 帳號)。
- Repository Name: blog-pro-max (這是你的專案名稱)。
- Workflow Name: publish.yml (這是我們剛才建立的檔名)。
- Environment Name: (可以留空)。
未來如何更新到 PyPI?
只要你完成上面的一次性設定,以後要更新 PyPI,你只需要:
- 在 GitHub 專案首頁點擊 “Releases”。
- 點擊 “Create a new release”。
- 設定一個 Tag(例如 v1.0.3),然後點擊 “Publish release”。 剩下的事 GitHub 就會自動幫你完成上傳到 PyPI 了!