發佈流程¶
推送 v1.0.0 這類版本 tag 時,.github/workflows/release.yml 會自動執行:
- 檢查 tag 和
pyproject.toml的版本是否一致。 - 建置 wheel 和 sdist,執行
twine check。 - 在全新的 venv 安裝 wheel,並跑一次
autoforge quickstart。 - 發佈到 PyPI(Trusted Publishing,不需要存放 token)。
- 建立 GitHub Release,附上 dist 檔案和 CHANGELOG。
- 建置並推送 Docker 映像到 GHCR:
ghcr.io/honguan/autoforge:cpu、:cuda,以及帶版本號的 tag。
推送到 main 且 docs/ 有變動時,docs.yml 會更新文件網站。
第一次發佈前需要做的設定(只做一次)¶
| 設定 | 步驟 |
|---|---|
| PyPI Trusted Publishing | 登入 pypi.org → Your account → Publishing → Add a new pending publisher:PyPI project name autoforge-trainer、Owner Honguan、Repository autoforge、Workflow release.yml、Environment pypi |
| GitHub 環境 | repo Settings → Environments → New environment,名稱填 pypi(建議設 Required reviewers,發佈前要你按同意) |
| GitHub Pages | repo Settings → Pages → Source 選 GitHub Actions |
| GHCR 映像公開 | 第一次推送後:GitHub 個人頁 → Packages → autoforge → Package settings → Change visibility → Public |
發佈一個版本¶
先改 pyproject.toml 和 autoforge/__init__.py 的版本號,更新 CHANGELOG.md,合併到 main。接著用下面任一種方式建立 tag:
方法 A:命令列
git checkout main && git pull
git tag v1.0.0
git push origin v1.0.0
方法 B:GitHub 網頁
- 到 repo 首頁 → Releases → Draft a new release。
- Choose a tag 輸入
v1.0.0,選「Create new tag on publish」,Target 選main。 - 標題填
AutoForge v1.0.0,按 Publish release。
建立 tag 後就會觸發 release workflow,自動把 wheel 和 sdist 附加到這個 Release。
接著到 GitHub 的 Actions 頁面看 release 的執行結果。
在本機驗證「乾淨機器」¶
python -m build
docker run --rm -v $PWD/dist:/dist python:3.12-slim \
bash -c 'pip install /dist/*.whl && time autoforge quickstart'