# 用途:在 pull request 更新時執行 CI,先計算測試用版本號,再用該版本呼叫 Antigravity composite action 並驗證輸出內容。 # 更新日期:2026/06/27 23:21:07 # 定義此 Gitea Actions workflow 顯示的名稱。 name: CI # 宣告觸發 workflow 的事件設定。 on: # 設定 pull request 事件會觸發此 workflow。 pull_request: # 指定 pull request 目標分支的忽略清單,避免 master 分支觸發此 workflow。 branches-ignore: # 忽略目標分支為 master 的 pull request。 - master # 限定只在 pull request 開啟或同步更新時觸發。 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: # 將 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,版本由 repository variable 指定。 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' # 建立測試 Antigravity composite action 的 job。 antigravity: # 設定 Antigravity 測試 job 在執行介面顯示的名稱。 name: Antigravity # 指定此 job 在 ubuntu runner 上執行。 runs-on: ubuntu # 宣告此 job 需要先完成版本號 job,才能取得其輸出版本。 needs: release-tag-version # 定義 Antigravity 測試 job 的執行步驟。 steps: # 使用剛計算出的版本呼叫本 composite action,驗證工具可正常取得模型輸出。 - name: 測試工具 # 設定 step id,讓後續步驟可以引用此 step 的輸出文字。 id: antigravity # 使用本 Antigravity composite action,版本來自前一個 job 的輸出。 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: 檢查輸出 # 只有在輸出文字不等於預期 repository variable 時才執行失敗指令。 if: ${{ steps.antigravity.outputs.text != vars.ANTIGRAVITY_EMAIL }} # 以非零結束碼結束此步驟,讓 CI 明確標示測試失敗。 run: exit 1