What to build
CI 與 Generate Coverage Badge 重複同樣四步 setup(裝 poetry → setup-python 3.11 with poetry cache → poetry install),而這正是最容易漂移的部分(Python 版本、action 版本、安裝旗標)。
抽成 repo 內的 composite action,兩個 workflow 改為 checkout → 共用 setup → 各自的 yapf/pytest 步驟——行為步驟保持原樣可見,對外描述的 CI 行為(yapf diff+pytest with coverage)不變。順帶在安裝前加 `poetry check --lock` 做便宜的 pyproject/lock 一致性檢查。
注意:composite 的 `uses: ./…` 必須排在 checkout 之後才解析得到;已評估過 reusable workflow(參數化成本高於刪掉的重複)與維持現狀(升版時要改兩份)兩個替代方案,composite 是小團隊維護成本最低的解。
Acceptance criteria
Blocked by
What to build
CI 與 Generate Coverage Badge 重複同樣四步 setup(裝 poetry → setup-python 3.11 with poetry cache → poetry install),而這正是最容易漂移的部分(Python 版本、action 版本、安裝旗標)。
抽成 repo 內的 composite action,兩個 workflow 改為 checkout → 共用 setup → 各自的 yapf/pytest 步驟——行為步驟保持原樣可見,對外描述的 CI 行為(yapf diff+pytest with coverage)不變。順帶在安裝前加 `poetry check --lock` 做便宜的 pyproject/lock 一致性檢查。
注意:composite 的 `uses: ./…` 必須排在 checkout 之後才解析得到;已評估過 reusable workflow(參數化成本高於刪掉的重複)與維持現狀(升版時要改兩份)兩個替代方案,composite 是小團隊維護成本最低的解。
Acceptance criteria
Blocked by