73 lines
4.0 KiB
YAML
73 lines
4.0 KiB
YAML
# 用途:在 pull request 更新時執行 CI,先計算測試用版本號,再用該版本呼叫 Antigravity composite action 並驗證輸出內容。
|
||
# 更新日期:2026/06/29 14:21:50
|
||
|
||
# 定義此 Gitea Actions workflow 顯示的名稱。
|
||
name: CI
|
||
|
||
# 宣告觸發 workflow 的事件設定。
|
||
on:
|
||
# 設定 pull request 事件會觸發此 workflow。
|
||
pull_request:
|
||
# 指定 pull request 目標分支的忽略清單,避免 master 分支觸發此 workflow。
|
||
branches-ignore:
|
||
# 忽略目標分支為 master 的 pull request(避免正式分支誤觸 CI)。
|
||
- master
|
||
# 限定只在 pull request 開啟(opened)或同步更新(synchronize,即推新 commit)時觸發。
|
||
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 對外提供的輸出值,讓 needs 此 job 的其他 job 可引用。
|
||
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 action,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 版本號,讓後續測試使用預發(pre-release)版本格式,避免佔用正式 tag。
|
||
is_beta: 'true'
|
||
|
||
# 建立測試 Antigravity composite action 的 job。
|
||
antigravity:
|
||
# 設定 Antigravity 測試 job 在執行介面顯示的名稱。
|
||
name: Antigravity
|
||
# 指定此 job 在 ubuntu runner 上執行。
|
||
runs-on: ubuntu
|
||
# 宣告此 job 需要先完成 release-tag-version job,才能取得其輸出版本(建立執行順序相依)。
|
||
needs: release-tag-version
|
||
# 定義 Antigravity 測試 job 的執行步驟。
|
||
steps:
|
||
# 使用剛計算出的版本呼叫本 composite action,驗證工具可正常取得模型輸出。
|
||
- name: 測試工具
|
||
# 設定 step id,讓後續步驟可以引用此 step 的輸出文字(steps.antigravity.outputs.text)。
|
||
id: antigravity
|
||
# 使用本 Antigravity composite action,版本來自前一個 job 輸出的 version,前綴 v 組成 release tag。
|
||
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帳號,只要電子郵件不要其他任何資訊"
|
||
- name: 工具書出
|
||
run: echo "${{ steps.antigravity.outputs.text }}"
|
||
# 比對 Antigravity action 的輸出與預期電子郵件,不一致時讓 workflow 失敗。
|
||
- name: 檢查輸出
|
||
# 只有在 antigravity step 的輸出文字不等於預期 repository variable(ANTIGRAVITY_EMAIL)時才執行下方失敗指令。
|
||
if: ${{ steps.antigravity.outputs.text != vars.ANTIGRAVITY_EMAIL }}
|
||
# 以非零結束碼(exit 1)結束此步驟,讓 CI 明確標示測試失敗。
|
||
run: exit 1
|