Author SHA1 Message Date
JefferyandClaude Fable 5 b852034917 docs(工作流說明): 改寫 readme 為共用工作流與自測流程說明
actions/composite-template: CI / BUILD (pull_request) Successful in 3s
actions/composite-template: CI / TEST (pull_request) Successful in 53s
actions/composite-template: CI / RESULT (pull_request) Successful in 3s
actions/ci: CI / BUILD (pull_request) Successful in 3s
workflows/ci: CI / BUILD (pull_request) Successful in 3s
actions/ci: CI / AI Code Review (pull_request) Successful in 2m13s
workflows/ci: CI / AI Code Review (pull_request) Successful in 49s
CI / TEST (pull_request) Successful in 1m7s
CI / RESULT (pull_request) Successful in 1s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 14:58:37 +08:00
JefferyandClaude Fable 5 4127833c20 chore(gitea 工作流): 改用共用 scoped workflows,ci.yaml 改為 codex 自測流程
共同的 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>
2026-07-15 14:58:37 +08:00
jiantw83 18b226906f docs(setup-codex): 重整 action、workflow 與 README 文件
CI / 1. BUILD (pull_request) Successful in 4s
CI / 2. TEST (pull_request) Has been skipped
CI / 3. RESULT (pull_request) Has been skipped
2026-07-11 10:44:30 +00:00
5 changed files with 86 additions and 180 deletions
+30 -98
View File
@@ -1,136 +1,68 @@
# ============================================================================= # =============================================================================
# CI WorkflowGitea Actions # setup-codex 專案自測工作流
# 用途:在 Pull Request 開啟或更新時觸發的持續整合流程,依序執行三個 job: #
# 1. BUILD - 發佈 Gitea Releasebeta 版本號取自 run_number),並輸出 is_beta。 # 共同的 CI / CD 流程(版本計算、release 發佈、AI Code Review、tag 反查、
# 2. TEST - 依 BUILD 輸出的 is_beta 決定是否執行;checkout 原始碼,執行本 # release 清理)由 actions/composite-template 的 scoped workflows 自動套用,
# composite actionsetup-codex),再用 codex exec 產生「自我介紹」 # 本檔只保留 setup-codex 專屬的自測步驟,與共用流程並行執行:
# 文字,透過 heredoc 寫入 job output。 # 以本 repo 根目錄的 composite action./)安裝 codex CLI
# 3. RESULT - 顯示 TEST job 輸出的 message,用於驗證整條流程串接成功。 # 再執行 codex exec 產生自我介紹,驗證安裝與認證成功。
# 另外,CI 僅在 base 分支為 master 或 develop 的 Pull Request 觸發。 #
# 更新日期:2026/07/03 17:56:45 # 參數優先權:${{ gitea.* }} -> ${{ vars.* }}(比照共用工作流,不使用 env 傳參)
# ============================================================================= # =============================================================================
# workflow 名稱,會顯示在 Gitea Actions 的執行清單中。 # 名稱與共用工作流同為 CI(Gitea 以檔案路徑識別 workflow名稱重複不會衝突;
# UI 上兩條 run 同名,可由 job 組成區分:共用版有 BUILD job,自測版只有 TEST / RESULT)。
name: CI name: CI
# 觸發條件設定區塊。
on: on:
# 監聽 Pull Request 事件 # 與共用 CI 相同的觸發條件,僅在 PR 開啟與同步更新時執行
pull_request: pull_request:
# 限制只有當 PR 的目標(base)分支為 master 或 develop 時才觸發此 CI。
branches: branches:
# 納入的目標分支:master。
- master - master
# 納入的目標分支:develop。
- develop - develop
# 僅在 PR「開啟」(opened) 或「有新 commit 推送 / 更新」(synchronize) 時觸發,
# 避免 closed / reopened 等其他事件也啟動整條 CI。
types: [opened, synchronize] types: [opened, synchronize]
# 定義本 workflow 的所有 job。
jobs: jobs:
# ---- Job 1BUILD(發佈 Release---- # ---- Job 1TEST(安裝 codex CLI 並實際執行----
build:
# job 顯示名稱(前綴數字用於在 UI 中排序閱讀)。
name: 1. BUILD
# 指定執行環境(runner label),使用 ubuntu runner。
runs-on: ubuntu
# 此 job 專屬的環境變數。
env:
# 版本號規則:固定 0.0.0-beta. 前綴 + Gitea 的執行流水號 run_number
# 讓每次 CI 產生遞增且唯一的 beta 版本字串。
VERSION: "0.0.0-beta.${{ gitea.run_number }}"
# 定義環境變數 IS_BETA:當 PR 的 base 分支為 develop 時為字串 'true',否則為 'false'
# 作為下方 is_beta 輸出的來源,用來決定 test job 是否執行。
IS_BETA: ${{ gitea.base_ref == 'develop' }}
# 定義此 job 對外輸出,供後續 job(test)取用其判斷結果。
outputs:
# 將環境變數 IS_BETA 暴露為 job 層級的 is_beta 輸出;當 PR base 分支為 develop 時為 'true'
# 供 test job 以 `if ... == 'true'` 判斷是否執行(即:僅 develop 的 PR 會跑 test)。
is_beta: ${{ env.IS_BETA }}
# 此 job 的執行步驟。
steps:
# 步驟:發佈 Release。
- name: Publishing Release
# 使用第三方 action 建立 Gitea Release;版本號由 repo variable 控制,
# 便於集中管理 action 版本、避免硬編碼。
uses: akkuman/gitea-release-action@${{ vars.ACTION_GITEA_RELEASE_VERSION }}
# 傳入該 action 的參數。
with:
# Release 顯示名稱:「儲存庫名稱 v版本號」。
name: "${{ gitea.event.repository.name }} v${{ env.VERSION }}"
# Release 對應的 tag 名稱,前綴 v + 版本號。
tag_name: "v${{ env.VERSION }}"
# tag 指向的 commit,使用本次觸發事件的 commit SHA。
target_commitish: ${{ gitea.sha }}
# 是否標記為「預發佈」(prerelease):當 PR 目標分支 base_ref 為 develop 時為 true
# 代表流向 develop 的變更視為預發佈版本。
prerelease: ${{ env.IS_BETA }}
# ---- Job 2TEST(執行 setup-codex 並產生自我介紹)----
test: test:
# job 顯示名稱。 name: TEST
name: 2. TEST
# 指定 ubuntu runner。
runs-on: ubuntu runs-on: ubuntu
# 相依關係:需等 build job 成功後才執行 # 比照共用 CI 的 beta 判斷:只有目標分支為 develop 的 PR 才自測
needs: [build] if: ${{ gitea.base_ref == 'develop' }}
# 執行條件:僅當 build job 的 is_beta 輸出等於字串 'true' 時才執行本 test job
# 否則整個 test job 會被略過。
if: ${{ needs.build.outputs.is_beta == 'true' }}
# 定義此 job 對外輸出,供後續 job(result)取用。
outputs: outputs:
# 將名為 execute 的步驟輸出的 message,暴露為 job 層級的 message 輸出 # 將 codex 的回覆往下傳給 result job
message: ${{ steps.execute.outputs.message }} message: ${{ steps.execute.outputs.message }}
# 此 job 的執行步驟。
steps: steps:
# 步驟:取出原始碼。 # 取出原始碼,讓 uses: ./ 能找到本 repo 的 composite action
- name: Source Code Checkout - name: Source Code Checkout
# 使用官方 checkout action 將 repo 內容拉到 runner;版本由 repo variable 控制。
uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }} uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }}
# 步驟:執行本 repo 的 composite actionsetup-codex)。 # 執行本 repo 的 composite actionsetup-codex 自身)。
- name: Run Setup Codex - name: Run Setup Codex
# 指定步驟 id,方便後續引用其輸出。
id: setup-codex id: setup-codex
# 「./」代表使用當前 repo 根目錄的 action(即本專案自身這個 composite action)。
uses: ./ uses: ./
# 傳入該 action 的參數。
with: with:
# 從 secrets 帶入 CODEX_OAUTH 授權憑證,供 codex 登入 / 認證使用(機密不外顯)。
oauth: ${{ secrets.CODEX_OAUTH }} oauth: ${{ secrets.CODEX_OAUTH }}
# 步驟:實際呼叫 codex 產生自我介紹並寫入 job output。 # 實際呼叫 codex 產生自我介紹,以 heredoc 寫入多行 output。
- name: Execute Codex - name: Execute Codex
# 指定步驟 id 為 execute,對應上方 outputs.message 的來源。
id: execute id: execute
# 明確指定以 bash 執行下方 run 腳本。
shell: bash shell: bash
# 多行 shell 腳本(run: | 表示保留換行的區塊字面值)。
run: | run: |
# 執行 codex exec 送出提示「請你進行自我介紹」,取得回覆文字存入 MESSAGE 變數;
# 2>/dev/null 將 stderr 丟棄,避免非結果訊息污染輸出內容。
MESSAGE=$(codex exec "請你進行自我介紹" 2>/dev/null) MESSAGE=$(codex exec "請你進行自我介紹" 2>/dev/null)
# 用大括號將多個 echo 群組化,統一把整段輸出一次重導向到 $GITHUB_OUTPUT。
{ {
# 宣告輸出鍵 message 並使用 heredoc 分隔符 CODEX_EOF,以支援「多行值」的寫法。
echo "message<<CODEX_EOF" echo "message<<CODEX_EOF"
# 寫入實際的多行自我介紹內容。
echo "$MESSAGE" echo "$MESSAGE"
# heredoc 結束分隔符,標示 message 值到此為止。
echo "CODEX_EOF" echo "CODEX_EOF"
# 將上述群組化輸出「附加」(>>) 到 $GITHUB_OUTPUT 檔,登記為此步驟的 output。
} >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
# ---- Job 3RESULT(顯示 TEST 的 message----
# ---- Job 2RESULT(輸出 codex 回覆)----
result: result:
# job 顯示名稱。 name: RESULT
name: 3. RESULT
# 指定 ubuntu runner。
runs-on: ubuntu runs-on: ubuntu
# 相依關係:需等 build 與 test 兩個 job 都完成後才執行。 needs: [test]
needs: [build,test]
# 此 job 專屬的環境變數。
env:
# 從 test job 的輸出取得 message,供下方步驟印出。
MESSAGE: ${{ needs.test.outputs.message }}
# 此 job 的執行步驟。
steps: steps:
# 步驟:印出訊息。 # 這裡例外使用 step 層 env 中轉:message 為多行且可能含引號等特殊字元,
# 直接內嵌到 run 會破壞 shell 語法,經環境變數傳遞才安全。
- name: Show Message - name: Show Message
# 將環境變數 MESSAGE 的內容輸出到 log,用於確認整條流程串接與 codex 回覆結果。 env:
MESSAGE: ${{ needs.test.outputs.message }}
run: echo "$MESSAGE" run: echo "$MESSAGE"
-54
View File
@@ -1,54 +0,0 @@
# =============================================================================
# 用途說明:
# 本 workflow 為「CD(持續部署)」流程,於程式碼 push 到 master 分支時觸發。
# 主要工作為 checkout 完整原始碼、依指定 commit 反查其所屬的 git tag
# 並將該 tag 輸出顯示,供後續部署或版本追蹤使用。
# 更新日期:2026/07/03 17:43:30 (Asia/Taipei)
# =============================================================================
# workflow 名稱,顯示於 Gitea Actions 介面
name: CD
# 觸發條件設定
on:
# 監聽 push 事件
push:
# 僅限定下列分支
branches:
# 只有 push 到 master 分支時才會觸發本 workflow
- master
# 定義所有工作(jobs
jobs:
# 部署工作,job 識別鍵為 deploy
deploy:
# 此 job 的顯示名稱
name: DEPLOY
# 指定執行環境(runner label)為 ubuntu
runs-on: ubuntu
# job 層級環境變數
env:
# 取事件 commits 陣列的第二筆(索引 1)之 commit id 作為要處理的 SHA
# 需人工確認:使用索引 1 而非 0,取的是事件中「第二個」commit;
# 當一次 push 只包含單一 commit 時,索引 1 可能取不到值(為空)。
COMMIT_SHA: ${{ gitea.event.commits[1].id }}
# 依序執行的步驟
steps:
# 步驟一:取出原始碼
- name: Source Code Checkout
# 使用 actions/checkout,版本由 repo/organization 變數 ACTION_CHECKOUT_VERSION 決定
uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }}
# with:傳入 checkout action 的參數區塊
with:
# fetch-depth: 0 代表抓取完整 git 歷史(含所有 tag),
# 以利後續 git describe 能正確反查 tag(淺層 clone 會導致查不到)。
fetch-depth: 0
# 步驟二:取得該 commit 所屬的 tag
- name: Get Commit Tag
# 設定步驟 id 為 commit,供後續步驟以 steps.commit.outputs 取得輸出
id: commit
# git describe --contains 會找出「包含」指定 commit 的最近 tag,
# 並將結果以 tag=... 寫入 $GITEA_OUTPUT,成為此步驟的輸出參數 tag。
run: echo "tag=$(git describe --contains ${{ env.COMMIT_SHA }})" >> $GITEA_OUTPUT
# 步驟三:顯示取得的 tag
- name: Show Tag
# 印出上一步(id=commit)輸出的 tag 值,方便於 log 確認結果
run: echo "${{ steps.commit.outputs.tag }}"
+41 -8
View File
@@ -1,9 +1,42 @@
# GITEA COMPOSITE ACTION 的工作流列表 # setup-codex 工作流說明
- CI 本專案已改用共用工作流:共同的 CI / CD 流程由 `actions/composite-template``.gitea/scoped_workflows/`Gitea scoped workflows 機制)自動套用到本 repo 執行,**不在本目錄內**。本目錄只保留 setup-codex 專屬的自測工作流,與共用流程並行執行。
- BUILD
- TEST ## 工作流總覽
- RESULT
- CD | 檔案 | 名稱 | 觸發條件 | 目的 |
- BUILD | --- | --- | --- | --- |
- DEPLOY | (共用)`composite-template/.gitea/scoped_workflows/ci.yaml` | `CI` | `pull_request``opened``synchronize`;目標分支 `master` / `develop`) | 版本計算、release 發佈、AI Code Review、舊 release 清理 |
| (共用)`composite-template/.gitea/scoped_workflows/master.yaml` | `CD` | `push``master` | 反查本次合併對應的 release tag |
| `.gitea/workflows/ci.yaml` | `CI`(自測) | `pull_request``opened``synchronize`;目標分支 `master` / `develop`),僅 base 為 `develop` 時執行 | 以本 repo 的 composite action 安裝 codex CLI 並實測 |
共用工作流的細節與 vars / secrets 需求,請見 `composite-template/.gitea/scoped_workflows/readme.md`
## `.gitea/workflows/ci.yaml`
### JobTEST — 安裝並實測 codex CLI`if: gitea.base_ref == 'develop'`
| 步驟 | 目的 |
| --- | --- |
| `Source Code Checkout` | 取出原始碼,讓 `uses: ./` 能找到本 repo 的 composite action |
| `Run Setup Codex` | 執行本 repo 根目錄的 composite action(即 setup-codex 自身),以 OAuth 憑證完成 codex CLI 安裝與認證 |
| `Execute Codex` | 執行 `codex exec "請你進行自我介紹"`,將多行回覆以 heredoc 寫入 step output `message`,驗證 CLI 可用 |
### JobRESULT — 輸出 codex 回覆
| 步驟 | 目的 |
| --- | --- |
| `Show Message` | 將 TEST 輸出的 `message` 印到執行紀錄,確認輸出鏈串接成功(此步驟例外以 step 層 `env` 中轉,因 message 為多行且可能含特殊字元) |
### 參數
| 參數 | 優先權鏈 | 說明 |
| --- | --- | --- |
| 是否執行自測 | `gitea.base_ref == 'develop'` | 比照共用 CI 的 beta 判斷,僅 develop 的 PR 執行 |
| checkout 版本 | `vars.ACTION_CHECKOUT_VERSION` | 指定 `actions/checkout` 的 tag(組織層級已設定) |
| `oauth` | `secrets.CODEX_OAUTH` | codex CLI 的 OAuth 憑證(本 repo 專屬 secret,必須設定) |
## 備註
- 原本的 CI / CD 工作流(版本計算、release 發佈、AI Code Review、tag 反查)已刪除,其功能完全由共用工作流覆蓋;目前的 `ci.yaml` 是內容不同的自測流程,請勿在本目錄重新加入與共用流程重複的步驟,否則同一事件會重複執行(重複發 release、重複 AI review)。
- 自測與共用 CI 是兩條獨立的 workflow run,且顯示名稱同為 `CI`(Gitea 以檔案路徑識別,名稱重複不衝突;可由 job 組成區分——共用版為 `BUILD / TEST / RESULT`,自測只有 `TEST / RESULT`)。自測失敗不會擋下共用 CI 的 release 發佈,合併前請同時確認兩者的執行結果。
+14 -19
View File
@@ -1,8 +1,8 @@
# setup-codex # setup-codex
> 更新時間:2026/07/03 17:56:45 > 更新時間:2026/07/11 18:39:51Asia/Taipei
`setup-codex` 是一個 **Gitea composite action**,用於在 Gitea Actions runner 上安裝並登入 [Codex CLI](https://chatgpt.com/codex),讓後續 workflow 步驟能直接呼叫已完成 OAuth 登入的 `codex` 指令。本 repo 由 action 定義(`action.yml`)與示範用的 CI/CD workflow 組成,內容皆為 YAML 與少量 shellNode,**不含可列入 README 的公開程式方法** `setup-codex` 是一個 **Gitea composite action**,用於在 Gitea Actions runner 上安裝並登入 [Codex CLI](https://chatgpt.com/codex),讓後續 workflow 步驟能直接呼叫已完成 OAuth 登入的 `codex` 指令。本 repo 由 action 定義(`action.yml`)與示範用的 CI/CD workflow 組成,內容皆為 YAML 與少量 shellNode。
## 專案列表 ## 專案列表
@@ -10,7 +10,7 @@
| 專案名稱 | 專案描述 | | 專案名稱 | 專案描述 |
| --- | --- | | --- | --- |
| [setup-codex](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop) | Gitea composite action:安裝 Codex CLI、以 base64 編碼的 OAuth 驗證檔完成登入,並顯示目前登入帳號;另附 CI(僅在 base 為 masterdevelop 的 PR 觸發,發佈 Release、依 is_beta 決定是否執行 codex 測試)與 CDpush master 反查 commit tag)示範 workflow。 | | [setup-codex](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop) | Gitea composite action:安裝 Codex CLI、以 base64 編碼的 OAuth 驗證檔完成登入,並透過 workflow 範例展示如何在 CICD 中串接 Codex。 |
### 參考專案 ### 參考專案
@@ -26,7 +26,7 @@
## 功能列表 ## 功能列表
本專案為 Gitea composite actionYAML + shellNode),未公開任何可列入 README 的程式方法public methodconstructorextension methodoperator)。 本專案未公開可列入 README 的功能public methodconstructorextension methodoperator)。
| 功能名稱 | 功能描述 | | 功能名稱 | 功能描述 |
| --- | --- | | --- | --- |
@@ -34,8 +34,6 @@
## 使用範例 ## 使用範例
> 說明:本專案無公開程式方法,以下改以「如何在 workflow 中使用此 composite action」作為使用範例。
### 在 workflow 中引用 action ### 在 workflow 中引用 action
在同一個 repo 內,可用相對路徑 `./` 引用本 action;跨 repo 則以 `owner/repo@版本` 引用。此 action 需要一個必填參數 `oauth`(透過 OAuth 登入 ChatGPT 產生、並經 base64 編碼的驗證檔內容,建議存放於 secrets)。 在同一個 repo 內,可用相對路徑 `./` 引用本 action;跨 repo 則以 `owner/repo@版本` 引用。此 action 需要一個必填參數 `oauth`(透過 OAuth 登入 ChatGPT 產生、並經 base64 編碼的驗證檔內容,建議存放於 secrets)。
@@ -45,17 +43,15 @@ jobs:
demo: demo:
runs-on: ubuntu runs-on: ubuntu
steps: steps:
- name: Source Code Checkout - name: Source Code Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
# 引用本 repo 根目錄的 composite action - name: Run Setup Codex
- name: Run Setup Codex uses: ./
uses: ./ with:
with: oauth: ${{ secrets.CODEX_OAUTH }}
oauth: ${{ secrets.CODEX_OAUTH }} - name: Execute Codex
# 登入完成後即可直接呼叫 codex shell: bash
- name: Execute Codex run: codex exec "請你進行自我介紹"
shell: bash
run: codex exec "請你進行自我介紹"
``` ```
**前置條件與注意事項** **前置條件與注意事項**
@@ -63,6 +59,7 @@ jobs:
- `oauth`:必填。內容為 CodexChatGPT OAuth 驗證檔(`auth.json`)先經 base64 編碼後的字串,請存於 secret(例如 `CODEX_OAUTH`)避免外洩。 - `oauth`:必填。內容為 CodexChatGPT OAuth 驗證檔(`auth.json`)先經 base64 編碼後的字串,請存於 secret(例如 `CODEX_OAUTH`)避免外洩。
- action 會在 runner 家目錄產生 `~/.codex/auth.json`(含機敏憑證),並將 Codex 執行檔目錄加入 `PATH` - action 會在 runner 家目錄產生 `~/.codex/auth.json`(含機敏憑證),並將 Codex 執行檔目錄加入 `PATH`
- action 內建的 `Show Codex Account` 步驟會將登入帳號的 email 輸出到 workflow log,請留意 log 的存取權限與隱私。 - action 內建的 `Show Codex Account` 步驟會將登入帳號的 email 輸出到 workflow log,請留意 log 的存取權限與隱私。
- `outputs.message` 目前參照的 `steps.exchange` 步驟不存在,屬於既有問題,需人工確認。
### 對應的 workflow 檔案 ### 對應的 workflow 檔案
@@ -71,5 +68,3 @@ jobs:
| [action.yml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/action.yml) | 被其他 workflow 以 `uses` 引用 | 定義安裝/登入 Codex 的 composite action。 | | [action.yml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/action.yml) | 被其他 workflow 以 `uses` 引用 | 定義安裝/登入 Codex 的 composite action。 |
| [.gitea/workflows/ci.yaml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/.gitea/workflows/ci.yaml) | base 為 `master``develop` 的 Pull Request`opened``synchronize` | 發佈 beta Release`build``base_ref == 'develop'` 設定 `IS_BETA` 並輸出 `is_beta`,當 `is_beta == 'true'`(即 develop 的 PR)時執行本 action 以 `codex exec` 產生自我介紹、顯示結果。 | | [.gitea/workflows/ci.yaml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/.gitea/workflows/ci.yaml) | base 為 `master``develop` 的 Pull Request`opened``synchronize` | 發佈 beta Release`build``base_ref == 'develop'` 設定 `IS_BETA` 並輸出 `is_beta`,當 `is_beta == 'true'`(即 develop 的 PR)時執行本 action 以 `codex exec` 產生自我介紹、顯示結果。 |
| [.gitea/workflows/master.yaml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/.gitea/workflows/master.yaml) | push 至 `master` | 反查指定 commit 所屬的 git tag 並顯示。 | | [.gitea/workflows/master.yaml](https://gitea.jsc.idv.tw/actions/setup-codex/src/branch/develop/.gitea/workflows/master.yaml) | push 至 `master` | 反查指定 commit 所屬的 git tag 並顯示。 |
> ⚠️ 注意(既有、待人工確認):`action.yml` 的 `outputs.message` 參照的 `steps.exchange` 步驟不存在,該 output 可能取不到值。
+1 -1
View File
@@ -5,7 +5,7 @@
# 2) 使用外部傳入、經 base64 編碼的 OAuth 驗證檔完成 Codex 登入。 # 2) 使用外部傳入、經 base64 編碼的 OAuth 驗證檔完成 Codex 登入。
# 3) 解析登入驗證檔中的 id_token,輸出目前登入的帳號 email 以供確認。 # 3) 解析登入驗證檔中的 id_token,輸出目前登入的帳號 email 以供確認。
# 使用情境:讓後續 workflow 步驟可直接呼叫已登入的 Codex CLI。 # 使用情境:讓後續 workflow 步驟可直接呼叫已登入的 Codex CLI。
# 更新日期:2026/07/03 17:33:39 # 更新日期:2026/07/11 18:39:51
# ============================================================================= # =============================================================================
# action 名稱:顯示於 Gitea/GitHub Actions UI 上的識別名稱 # action 名稱:顯示於 Gitea/GitHub Actions UI 上的識別名稱