71 lines
3.7 KiB
YAML
71 lines
3.7 KiB
YAML
# 用途:在 pull request 更新時執行 CI,先計算測試用版本號,再用該版本呼叫 Antigravity composite action 並驗證輸出內容。
|
||
# 更新日期:2026/06/29 16:11:33
|
||
|
||
# 定義此 Gitea Actions workflow 顯示的名稱。
|
||
name: CI
|
||
|
||
# 宣告觸發 workflow 的事件設定。
|
||
on:
|
||
# 設定 pull request 事件會觸發此 workflow。
|
||
pull_request:
|
||
# 指定 pull request 目標分支的忽略清單,避免 master 分支觸發此 workflow。
|
||
branches-ignore:
|
||
# 忽略目標分支為 master 的 pull request。
|
||
- master
|
||
# 限定只在 pull request 開啟(opened)或同步更新(synchronize)時觸發。
|
||
types: [opened, synchronize]
|
||
|
||
# 定義 workflow 內要執行的 jobs。
|
||
jobs:
|
||
# 建立計算 release tag 版本號的 job,供後續測試 job 使用。
|
||
release-tag-version:
|
||
# 設定版本號 job 在執行介面顯示的名稱。
|
||
name: Release Tag Version
|
||
# 指定此 job 在 ubuntu runner 上執行。
|
||
runs-on: ubuntu
|
||
# 宣告此 job 對外提供的輸出值(outputs),供 needs 此 job 的 jobs 取用。
|
||
outputs:
|
||
# 將 release-tag-version step 計算出的 version 輸出給需要此 job 的後續 jobs。
|
||
version: ${{ steps.release-tag-version.outputs.version }}
|
||
# 定義版本號 job 的執行步驟。
|
||
steps:
|
||
# 呼叫 composite action 計算測試用版本號。
|
||
- name: 計算版本號
|
||
# 設定 step id,讓 job outputs 可以引用此 step 的輸出。
|
||
id: release-tag-version
|
||
# 使用內部 release-tag-version composite action,所用版本由 repository variable ACTION_RELEASE_TAG_VERSION 指定。
|
||
uses: https://gitea.jsc.idv.tw/composite-actions/release-tag-version@${{ vars.ACTION_RELEASE_TAG_VERSION }}
|
||
# 傳入 release-tag-version action 的參數。
|
||
with:
|
||
# 指定計算 beta 版本號(is_beta=true),讓後續測試使用預發(pre-release)版本格式。
|
||
is_beta: 'true'
|
||
|
||
# 建立測試 Antigravity composite action 的 job。
|
||
antigravity:
|
||
# 設定 Antigravity 測試 job 在執行介面顯示的名稱。
|
||
name: Antigravity
|
||
# 指定此 job 在 ubuntu runner 上執行。
|
||
runs-on: ubuntu
|
||
# 宣告此 job 需要先完成 release-tag-version job(needs),才能取得其輸出版本。
|
||
needs: release-tag-version
|
||
# 定義 Antigravity 測試 job 的執行步驟。
|
||
steps:
|
||
# 使用剛計算出的版本呼叫本 composite action,驗證工具可正常取得模型輸出。
|
||
- name: 測試工具
|
||
# 設定 step id,讓後續步驟可以引用此 step 的輸出文字(outputs.text)。
|
||
id: antigravity
|
||
# 使用本 Antigravity composite action,版本來自前一個 job 的輸出(needs.release-tag-version.outputs.version)。
|
||
uses: https://gitea.jsc.idv.tw/composite-actions/antigravity@v${{ needs.release-tag-version.outputs.version }}
|
||
# 傳入 Antigravity action 所需的輸入參數。
|
||
with:
|
||
# 傳入 Antigravity OAuth token secret 參照;此處只保留 secret 名稱引用,不包含 secret 明文。
|
||
oauth: ${{ secrets.ANTIGRAVITY_OAUTH }}
|
||
# 傳入測試提示詞,要求工具回傳目前登入的 Google 帳號電子郵件。
|
||
prompt: "請告訴我目前登入的Google帳號,只要電子郵件不要其他任何資訊"
|
||
# 比對 Antigravity action 的輸出與預期電子郵件,不一致時讓 workflow 失敗。
|
||
- name: 檢查輸出
|
||
# 只有在輸出文字(outputs.text)不等於預期 repository variable ANTIGRAVITY_EMAIL 時才執行失敗指令。
|
||
if: ${{ steps.antigravity.outputs.text != vars.ANTIGRAVITY_EMAIL }}
|
||
# 以非零結束碼(exit 1)結束此步驟,讓 CI 明確標示測試失敗。
|
||
run: exit 1
|