Files
codex/.gitea/workflows/ci.yaml
T
Jeffery 19cb276eea
CI / Release Tag Version (pull_request) Successful in 4s
CI / Codex (pull_request) Successful in 14s
docs(codex): 補齊 read_account_email docstring 與指令檔註解並重建 README
2026-06-29 14:55:50 +08:00

78 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# 用途:PR(非 master 分支、opened/synchronize)觸發的 CI。
# 流程:先用 release-tag-version composite action 算出 beta 版本號,再用該版本號
# 叫 codex composite action 執行(未帶 prompt,走取登入 email 分支),
# 最後以「檢查輸出」step 驗證輸出的登入帳號 email 是否等於 vars.CODEX_EMAIL。
# 更新日期:2026/06/29 14:18:26
# =============================================================================
# workflow 顯示名稱,於 Gitea Actions 列表中辨識此工作流程。
name: CI
# 觸發條件設定區塊。
on:
# 針對 pull_request 事件觸發。
pull_request:
# 略過目標分支為 master 的 PR(亦即只在「非 master 分支」的 PR 上跑),
# 避免對 master 的合併 PR 重複執行 CI。
branches-ignore:
- master
# 僅在 PR 被開啟(opened)或有新 commit 推入(synchronize)時觸發,
# 其他事件(如 reopened、labeled)不觸發以節省資源。
types: [opened, synchronize]
# 工作(jobs)定義區塊。
jobs:
# 第一個 job:計算 beta 版本號,供後續 codex job 取用。
release-tag-version:
# job 顯示名稱。
name: Release Tag Version
# 指定執行的 runner 標籤(ubuntu)。
runs-on: ubuntu
# 對外輸出值,讓相依此 job 的其他 job 可引用。
outputs:
# 將 release-tag-version step 算出的 version 輸出,鍵名為 version。
version: ${{ steps.release-tag-version.outputs.version }}
# 步驟清單。
steps:
# 呼叫 release-tag-version composite action 計算版本號。
- name: 計算版本號
# 此 step 的 id,供 outputs 透過 steps.release-tag-version 引用其輸出。
id: release-tag-version
# 使用外部 composite action;版本由 repo 變數 ACTION_RELEASE_TAG_VERSION 決定,
# 便於集中管理所引用 action 的版本。
uses: https://gitea.jsc.idv.tw/composite-actions/release-tag-version@${{ vars.ACTION_RELEASE_TAG_VERSION }}
with:
# 指定產生 beta 版本號(而非正式版),用於 CI 測試情境。
is_beta: 'true'
# 第二個 job:用前一 job 算出的版本號叫 codex action,再驗證其輸出。
codex:
# job 顯示名稱。
name: Codex
# 指定執行的 runner 標籤(ubuntu)。
runs-on: ubuntu
# 相依 release-tag-version job,需等其成功後才執行,
# 以取得其輸出的版本號。
needs: release-tag-version
# 步驟清單。
steps:
# 步驟一:呼叫 codex composite action(未帶 prompt,走「取登入 email」分支)。
- name: 測試工具
# 此 step 的 id,供後續「檢查輸出」step 引用其 outputs.text。
id: codex
# 使用 codex composite action;版本標籤由前一 job 輸出的 version 組成
# (前綴 v),確保測試所用 codex action 與本次算出的 beta 版本一致。
uses: https://gitea.jsc.idv.tw/composite-actions/codex@v${{ needs.release-tag-version.outputs.version }}
with:
# 由 secrets 注入 codex 登入用 OAuth 憑證,避免明文外洩。
# 注意:未提供 promptcodex action 會回傳目前登入帳號的 email。
oauth: ${{ secrets.CODEX_OAUTH }}
# 步驟二:驗證登入身分。
- name: 檢查輸出
# 當 codex 輸出的登入 email 與 repo 變數 CODEX_EMAIL 不符時條件成立,
# 代表登入帳號不是預期帳號。
if: ${{ steps.codex.outputs.text != vars.CODEX_EMAIL }}
# 條件成立即以非零狀態碼退出,使 CI 失敗(擋下非預期登入帳號)。
run: exit 1