From a9b9f95a7224d2483901e7c75ea7ce4a4ec74b58 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 30 Jun 2026 18:18:24 +0800 Subject: [PATCH] =?UTF-8?q?ci(release-cleanup):=20ci.yaml=20=E6=94=B9?= =?UTF-8?q?=E7=82=BA=20PR=20=E8=A7=B8=E7=99=BC=20beta=20=E6=A8=99=E7=89=88?= =?UTF-8?q?=20+=20=E8=87=AA=E6=88=91=E6=B8=85=E7=90=86=E7=AE=A1=E7=B7=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - release-tag-version job:以 is_beta: true 標註 beta 版並輸出 version - release-cleanup job:needs 前者,於該 beta 版本上執行 release-cleanup action(dogfooding 自我清理) Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitea/workflows/ci.yaml | 51 +++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index e3b2487..0387c72 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -19,30 +19,33 @@ on: types: [opened, synchronize] # 定義所有 jobs jobs: - # job 識別碼:AI 程式碼審查 - ai-code-review: - # job 顯示名稱 - name: AI Code Review - # 指定執行環境(runner 標籤),使用 ubuntu runner + # 第一個 job: 釋出並標註成品版本,並將版本號往外拋給後續 job 使用。 + release-tag-version: + # job 顯示名稱。 + name: Release Tag Version + # 指定執行環境 (runner) 標籤為 ubuntu。 runs-on: ubuntu - # 此 job 對 GITHUB_TOKEN 所需的權限範圍 - permissions: - # 允許寫入 repository 內容(供 action 讀取/操作程式碼) - contents: write - # 允許寫入 Pull Request(供 action 回貼審查留言) - pull-requests: write - # 允許寫入 issues(PR 留言底層走 issue comment API,需此權限) - issues: write - # 此 job 的執行步驟 + # 宣告此 job 的輸出,供後續 needs 此 job 的其他 job 取用。 + outputs: + # 將下方 id 為 release-tag-version 的 step 所輸出的 version,設為此 job 的對外 version 輸出 (關鍵點: 透過 outputs 把標註出的版本往外拋)。 + version: ${{ steps.release-tag-version.outputs.version }} + # 此 job 依序執行的步驟。 steps: - # 步驟名稱:使用 OpenCode 進行 AI 程式碼審查 - - name: AI 程式碼審查 by OpenCode - # 引用公司 Gitea 上的 composite action `opencode-code-review`, - # 版本由 repository/organization 變數 ACTION_OPENCODE_CODE_REVIEW_VERSION 指定, - # 便於集中控管所使用的 action 版本 - uses: https://gitea.jsc.idv.tw/composite-actions/opencode-code-review@${{ vars.ACTION_OPENCODE_CODE_REVIEW_VERSION }} - # 傳遞給 composite action 的輸入參數 + # 步驟: 呼叫 composite action 進行釋出並標註成品版本。 + - name: 釋出並標註成品版本 + # 設定此 step 的 id,讓上方 outputs 可用 steps.release-tag-version.outputs.version 取得其輸出。 + id: release-tag-version + # 引用 release-tag-version composite action,版本以變數 vars.ACTION_RELEASE_TAG_VERSION 釘選 (集中於 repo/org 變數管理,便於統一升版)。 + uses: https://gitea.jsc.idv.tw/composite-actions/release-tag-version@${{ vars.ACTION_RELEASE_TAG_VERSION }} + # 傳遞給該 action 的輸入參數。 with: - # 留言用 token,從 secrets.COMMENT_TOKEN 取得, - # 供 action 以該身分將審查結果回貼到 PR 留言 - comment_token: ${{ secrets.COMMENT_TOKEN }} + # is_beta 設為 true 表示走 beta 標版流程 (標註的是 beta 成品版本,而非正式版)。 + is_beta: true + release-cleanup: + name: Release Cleanup + runs-on: ubuntu + needs: release-tag-version + steps: + - name: 清理舊成品 + uses: https://gitea.jsc.idv.tw/docker-actions/release-cleanup@v${{ needs.release-tag-version.outputs.version }} +