feat(ci): 限制 CI 僅在 master/develop 的 PR 觸發並修正 test 執行條件為 is_beta == 'true'
This commit is contained in:
@@ -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 輸出。
|
||||
|
||||
Reference in New Issue
Block a user