Files
calculate-version/.gitea/workflows/readme.md
T
jiantw83 24ed2ab164
CI / 1. BUILD (pull_request) Successful in 1s
CI / 2. TEST (pull_request) Successful in 3m32s
CI / 3. RESULT (pull_request) Has been skipped
docs(README 與文件草稿): 重整說明與草稿內容
2026-07-11 10:00:34 +00:00

3.7 KiB
Raw Blame History

工作流程說明

以下內容整理 .gitea/workflows/ 目前的工作流程與用途,作為後續覆蓋 .gitea/workflows/readme.md 的說明文件。

總覽

Workflow 名稱 檔案位置 觸發條件 主要用途 相關參數
CI .gitea/workflows/ci.yaml pull_requestmasterdevelop,事件型別為 openedsynchronize 在 PR 階段建立 release、計算版本,beta 分支還會執行 AI code review VERSIONIS_BETAvars.ACTION_GITEA_RELEASE_VERSIONvars.ACTION_SETUP_LLM_CLIvars.ACTION_AI_CODE_REVIEW_VERSIONsecrets.LLM_OAUTHsecrets.TOKENvars.LLM_NAME
CD .gitea/workflows/master.yaml pushmaster 根據 commit 找出對應 tag,供部署流程或後續檢查使用 COMMIT_SHAvars.ACTION_CHECKOUT_VERSION

CI

  • 檔案位置:.gitea/workflows/ci.yaml
  • 觸發條件:pull_requestmasterdevelop,事件型別包含 openedsynchronize
  • 用途說明:先發佈 release 草稿,再呼叫 calculate-version action 計算版本;若是 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_VERSIONgitea-release-action 版本。
    • vars.ACTION_SETUP_LLM_CLILLM CLI 安裝 action 版本。
    • vars.ACTION_AI_CODE_REVIEW_VERSIONAI code review action 版本。
    • secrets.LLM_OAUTHsecrets.TOKENbeta 流程所需憑證。
    • vars.LLM_NAMEAI code review 使用的模型名稱。
  • 重要注意事項:
    • result job 只在 IS_BETA == 'false' 時執行。
    • test job 的 action 來源是 https://gitea.jsc.idv.tw/actions/calculate-version@v${{ env.VERSION }},版本號需與 release 流程對齊。
    • developmaster 的 release 節奏不同,需確認 VERSION 的預設生成邏輯是否符合預期。

CD

  • 檔案位置:.gitea/workflows/master.yaml
  • 觸發條件:pushmaster
  • 用途說明:檢出原始碼後,根據提交 SHA 找出對應 tag,並輸出查得的結果。
  • 主要輸入 / 環境參數:
    • COMMIT_SHA:目前流程中使用 gitea.event.commits[1].id,需確認該索引在所有 push 事件下都存在。
    • vars.ACTION_CHECKOUT_VERSIONactions/checkout 版本。
  • 重要注意事項:
    • fetch-depth: 0 是必要條件,否則 git for-each-ref --contains 可能找不到完整 tag。
    • Get Commit Tagrun 指令假設 tag 存在;若找不到,輸出會是空字串,需人工確認下游是否能接受。
    • Show Tag 目前採用統一輸出格式草稿,正式實作時仍需確認 shell 內的時間取得方式。