共同的 CI / CD(版本計算、release 發佈、AI Code Review、tag 反查、release 清理) 改由 composite-template 的 scoped workflows 自動套用;本 repo 僅保留 codex CLI 安裝與實測的自測流程(workflow 名稱同為 CI,僅 develop 的 PR 執行), 並移除功能已被共用流程覆蓋的 master.yaml。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
=============================================================================
用途說明:
這份文件整理 .gitea/workflows/ 內現有 workflow 與其工作項目,方便人工
快速理解 CI/CD 觸發條件與各 job 的責任分工。
更新日期:2026/07/11 18:39:51 (Asia/Taipei)
=============================================================================
工作流總覽
| 檔案 | 類型 | 名稱 | 目的 | 觸發條件 |
|---|---|---|---|---|
.gitea/workflows/ci.yaml |
Workflow | CI |
PR 進入 master / develop 時跑持續整合,並串接 release、Codex 測試與結果輸出 |
pull_request,且 base branch 為 master 或 develop,事件型別為 opened、synchronize |
.gitea/workflows/master.yaml |
Workflow | CD |
master 分支 push 後,查出對應 commit 所屬 tag 並輸出 |
push 到 master |
.gitea/workflows/readme.md |
文件 | 目前工作流清單文件 | 列出目前 workflow 與 job 名稱,供人工閱讀 | 無 |
.gitea/workflows/ci.yaml
- Workflow 名稱:
CI - 檔案路徑:
.gitea/workflows/ci.yaml - 目的:
- 在 Pull Request 開啟或更新時執行持續整合流程。
- 先發佈 Gitea Release,再視條件執行
setup-codex,最後輸出 Codex 回覆內容做為流程驗證。
- 觸發條件:
pull_request- 只在 PR base branch 為
master或develop時觸發 - 只在事件型別為
opened、synchronize時觸發
- 主要輸入 / 環境變數:
env.IS_BETA = ${{ gitea.base_ref == 'develop' }}vars.ACTION_CALCULATE_VERSIONvars.ACTION_GITEA_RELEASE_VERSIONvars.ACTION_CHECKOUT_VERSIONsecrets.CODEX_OAUTHgitea.event.repository.namegitea.shaneeds.build.outputs.is_betasteps.calculate-version.outputs.versionsteps.execute.outputs.message
- 重要節點:
buildjob 先計算版本,再建立 Release。testjob 只在is_beta == 'true'時執行,也就是 base branch 為develop的 PR。testjob 會使用本 repo 的 composite action./,也就是setup-codex。testjob 透過codex exec "請你進行自我介紹"產生多行訊息,寫入 job output。resultjob 會把testjob 的message印到 log。
- 備註:
buildjob 與testjob 的輸出鏈很依賴 action 版本與 secrets 狀態,若外部 action 版本改變,行為可能跟著變動,需人工確認。
.gitea/workflows/master.yaml
- Workflow 名稱:
CD - 檔案路徑:
.gitea/workflows/master.yaml - 目的:
- 在
master分支有 push 時,檢查完整 git 歷史後,以指定 commit 反查對應 tag,並輸出 tag。
- 在
- 觸發條件:
push- 只限
master分支
- 主要輸入 / 環境變數:
vars.ACTION_CHECKOUT_VERSIONenv.COMMIT_SHA = ${{ gitea.event.commits[1].id }}GITEA_OUTPUTgitea.event.commitssteps.commit.outputs.tag
- 重要節點:
checkout使用fetch-depth: 0,以保留完整 tag 歷史,方便git describe --contains查詢。Get Commit Tag會把git describe --contains的結果寫成 step outputtag。Show Tag只負責把 tag 印出到 log。
- 備註:
COMMIT_SHA取的是gitea.event.commits[1].id,不是索引 0。這個寫法代表它預期事件中至少有兩筆 commits,若只有一筆 commit,可能取不到值,需人工確認。git describe --contains的結果會受 tag 存在與歷史關係影響;若 commit 不在任何 tag 可辨識範圍內,輸出可能不符合預期,需人工確認。
.gitea/workflows/readme.md
- 檔案路徑:
.gitea/workflows/readme.md - 類型:工作流清單文件,不是 workflow
- 目的:
- 目前以簡短清單列出
CI與CD,以及各自的 job 名稱。
- 目前以簡短清單列出
- 觸發條件:
- 無,這是文件。
- 主要輸入 / 環境變數:
- 無
- 重要節點:
- 目前內容只列出:
CI->BUILD、TEST、RESULTCD->BUILD、DEPLOY
- 目前內容只列出:
- 備註:
- 這份清單文件與實際 workflow 內容存在落差的可能性,因為
master.yaml目前只看到deployjob,沒有BUILDjob;此處需人工確認。 - 若要把這份草稿直接覆寫成正式文件,建議先同步確認 workflow 與文件是否一致。
- 這份清單文件與實際 workflow 內容存在落差的可能性,因為