工作流程說明
以下內容整理 .gitea/workflows/ 目前的工作流程與用途,作為後續覆蓋 .gitea/workflows/readme.md 的說明文件。
總覽
| Workflow 名稱 | 檔案位置 | 觸發條件 | 主要用途 | 相關參數 |
|---|---|---|---|---|
| CI | .gitea/workflows/ci.yaml |
pull_request 到 master 與 develop,事件型別為 opened、synchronize |
在 PR 階段建立 release、計算版本,beta 分支還會執行 AI code review | VERSION、IS_BETA、vars.ACTION_GITEA_RELEASE_VERSION、vars.ACTION_SETUP_LLM_CLI、vars.ACTION_AI_CODE_REVIEW_VERSION、secrets.LLM_OAUTH、secrets.TOKEN、vars.LLM_NAME |
| CD | .gitea/workflows/master.yaml |
push 到 master |
根據 commit 找出對應 tag,供部署流程或後續檢查使用 | COMMIT_SHA、vars.ACTION_CHECKOUT_VERSION |
CI
- 檔案位置:
.gitea/workflows/ci.yaml - 觸發條件:
pull_request到master與develop,事件型別包含opened與synchronize - 用途說明:先發佈 release 草稿,再呼叫
calculate-versionaction 計算版本;若是 beta 分支,還會設定 LLM CLI 並執行 AI code review。 - 主要輸入 / 環境參數:
VERSION:預設為0.0.0-beta.${{ gitea.run_number }},供後續 job 使用。IS_BETA:由gitea.base_ref == 'develop'推得,控制 beta 與正式版流程。vars.ACTION_GITEA_RELEASE_VERSION:gitea-release-action版本。vars.ACTION_SETUP_LLM_CLI:LLM CLI 安裝 action 版本。vars.ACTION_AI_CODE_REVIEW_VERSION:AI code review action 版本。secrets.LLM_OAUTH、secrets.TOKEN:beta 流程所需憑證。vars.LLM_NAME:AI code review 使用的模型名稱。
- 重要注意事項:
resultjob 只在IS_BETA == 'false'時執行。testjob 的 action 來源是https://gitea.jsc.idv.tw/actions/calculate-version@v${{ env.VERSION }},版本號需與 release 流程對齊。- 若
develop與master的 release 節奏不同,需確認VERSION的預設生成邏輯是否符合預期。
CD
- 檔案位置:
.gitea/workflows/master.yaml - 觸發條件:
push到master - 用途說明:檢出原始碼後,根據提交 SHA 找出對應 tag,並輸出查得的結果。
- 主要輸入 / 環境參數:
COMMIT_SHA:目前流程中使用gitea.event.commits[1].id,需確認該索引在所有 push 事件下都存在。vars.ACTION_CHECKOUT_VERSION:actions/checkout版本。
- 重要注意事項:
fetch-depth: 0是必要條件,否則git for-each-ref --contains可能找不到完整 tag。Get Commit Tag的run指令假設 tag 存在;若找不到,輸出會是空字串,需人工確認下游是否能接受。Show Tag目前採用統一輸出格式草稿,正式實作時仍需確認 shell 內的時間取得方式。