發布流程
FrontEngine 會在 pull request 合併到 main 時,以 frontengine 的名義
發布到 PyPI。開發工作都在 dev 分支進行,要發版時就開一個指向 main
的 pull request 並合併。
持續整合與發布由 .github/workflows/ 底下的兩個 GitHub Actions 工作流程
驅動。
工作流程
ci.yml— CI觸發時機:對
main與dev分支 push 或 pull request,以及每日排程。於
windows-latest上對 Python 3.10、3.11、3.12 進行 matrix 測試。編譯
frontengine/底下所有模組,並執行tests/unit_test/start/底下的兩支 GUI 冒煙測試腳本。
release.yml— Release只會在 pull request 實際 合併 進
main時觸發(關閉但未合併的 pull request 不會觸發發布)。也可以透過workflow_dispatch手動 重新執行——手動觸發可以指定bump參數(patch/minor/major,預設patch)。在 建置或上傳之前,工作流程會先從
stable.toml讀取目前的version,依指定段位自動遞增(PR 合併觸發固定做 patch 遞增),將 新版本寫回stable.toml與pyproject.toml,並以附帶[skip ci]的 commit 把這次版本異動推回main,避免對自己觸發 CI。接著把
stable.toml覆蓋成pyproject.toml、建置 sdist 與 wheel、 以twine check驗證、以twine upload上傳至 PyPI 的frontengine專案,並以標籤v<new-version>建立一個 GitHub 發行版並附上建置產物。若計算出來的標籤已存在,工作流程會在碰到 PyPI 之前中止,確保同一個 版本不會被重複發布。
發布新版本
把 pull request 合併進
main,patch 版號會自動遞增。同一次工作流程執行就會發布到 PyPI 並建立 GitHub 發行版。
如果要做 minor 或 major 版本遞增——或者要在不開新 PR 的情況下重新執行
失敗的發布——請到 Actions → Release → Run workflow 手動觸發,並
選擇 bump 段位。
必要的 Secrets
請在 repository secrets 中設定:
PYPI_API_TOKEN— PyPI API token,權限範圍為frontengine專案。
工作流程使用 __token__ 作為 twine 的使用者名稱,所以 secret 只需存放
token 本身即可。把版本異動 commit push 回 main 使用 GitHub Actions
自動提供的 GITHUB_TOKEN。