diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 53a15aa..0f2d003 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -1,11 +1,13 @@ # ============================================================================= # CI Workflow(Gitea Actions) # 用途:在 Pull Request 開啟或更新時觸發的持續整合流程,依序執行三個 job: -# 1. BUILD - 發佈 Gitea Release(beta 版本號取自 run_number)。 -# 2. TEST - checkout 原始碼,執行本 composite action(setup-codex), -# 再用 codex exec 產生「自我介紹」文字,透過 heredoc 寫入 job output。 +# 1. BUILD - 發佈 Gitea Release(beta 版本號取自 run_number),並輸出 is_beta。 +# 2. TEST - 依 BUILD 輸出的 is_beta 決定是否執行;checkout 原始碼,執行本 +# composite action(setup-codex),再用 codex exec 產生「自我介紹」 +# 文字,透過 heredoc 寫入 job output。 # 3. RESULT - 顯示 TEST job 輸出的 message,用於驗證整條流程串接成功。 -# 更新日期:2026/07/03 11:41:20 +# 另外,CI 僅在 base 分支為 master 或 develop 的 Pull Request 觸發。 +# 更新日期:2026/07/03 17:43:30 # ============================================================================= # workflow 名稱,會顯示在 Gitea Actions 的執行清單中。 @@ -14,6 +16,12 @@ name: CI on: # 監聽 Pull Request 事件。 pull_request: + # 限制只有當 PR 的目標(base)分支為 master 或 develop 時才觸發此 CI。 + branches: + # 納入的目標分支:master。 + - master + # 納入的目標分支:develop。 + - develop # 僅在 PR「開啟」(opened) 或「有新 commit 推送 / 更新」(synchronize) 時觸發, # 避免 closed / reopened 等其他事件也啟動整條 CI。 types: [opened, synchronize] @@ -30,7 +38,12 @@ jobs: # 版本號規則:固定 0.0.0-beta. 前綴 + Gitea 的執行流水號 run_number, # 讓每次 CI 產生遞增且唯一的 beta 版本字串。 VERSION: "0.0.0-beta.${{ gitea.run_number }}" + # 定義此 job 對外輸出,供後續 job(test)取用其判斷結果。 outputs: + # 【需人工確認】將環境變數 IS_BETA 暴露為 job 層級的 is_beta 輸出;但本 job 的 + # env 只定義了 VERSION、並未定義 IS_BETA,因此 env.IS_BETA 會取到空字串, + # 配合 test 的 if ... == 'true' 判斷,將導致 test job 永遠被略過。 + # 此行內容維持原樣不修改,請人工確認是否應補上 IS_BETA 的設定。 is_beta: ${{ env.IS_BETA }} # 此 job 的執行步驟。 steps: @@ -58,7 +71,9 @@ jobs: runs-on: ubuntu # 相依關係:需等 build job 成功後才執行。 needs: [build] - if: ${{ needs.build.outputs.is_beta }} + # 執行條件:僅當 build job 的 is_beta 輸出等於字串 'true' 時才執行本 test job; + # 否則整個 test job 會被略過。 + if: ${{ needs.build.outputs.is_beta == 'true' }} # 定義此 job 對外輸出,供後續 job(result)取用。 outputs: # 將名為 execute 的步驟輸出的 message,暴露為 job 層級的 message 輸出。