- release-tag-version job:以 is_beta: true 標註 beta 版並輸出 version - release-cleanup job:needs 前者,於該 beta 版本上執行 release-cleanup action(dogfooding 自我清理) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
2.5 KiB
YAML
52 lines
2.5 KiB
YAML
# ===================================================================
|
||
# 用途:Gitea CI workflow,於 Pull Request 開啟或更新時觸發 AI 程式碼審查。
|
||
# 透過公司 Gitea 上的 composite action `opencode-code-review`,
|
||
# 對 PR 變更內容執行自動化 AI code review,並把審查結果以留言回貼到 PR。
|
||
# 更新日期(台灣時區 Asia/Taipei):2026/06/30 16:44:09
|
||
# ===================================================================
|
||
|
||
# workflow 名稱,顯示於 Gitea Actions 介面
|
||
name: CI
|
||
# 觸發事件設定
|
||
on:
|
||
# 針對 Pull Request 事件觸發
|
||
pull_request:
|
||
# 目標分支過濾:忽略以下分支(即 master 不觸發本 workflow)
|
||
branches-ignore:
|
||
# 排除 master 分支,避免對正式主線的 PR 執行 AI 審查
|
||
- master
|
||
# 僅在 PR 被「開啟(opened)」或「推送新 commit 同步(synchronize)」時觸發
|
||
types: [opened, synchronize]
|
||
# 定義所有 jobs
|
||
jobs:
|
||
# 第一個 job: 釋出並標註成品版本,並將版本號往外拋給後續 job 使用。
|
||
release-tag-version:
|
||
# job 顯示名稱。
|
||
name: Release Tag Version
|
||
# 指定執行環境 (runner) 標籤為 ubuntu。
|
||
runs-on: ubuntu
|
||
# 宣告此 job 的輸出,供後續 needs 此 job 的其他 job 取用。
|
||
outputs:
|
||
# 將下方 id 為 release-tag-version 的 step 所輸出的 version,設為此 job 的對外 version 輸出 (關鍵點: 透過 outputs 把標註出的版本往外拋)。
|
||
version: ${{ steps.release-tag-version.outputs.version }}
|
||
# 此 job 依序執行的步驟。
|
||
steps:
|
||
# 步驟: 呼叫 composite action 進行釋出並標註成品版本。
|
||
- name: 釋出並標註成品版本
|
||
# 設定此 step 的 id,讓上方 outputs 可用 steps.release-tag-version.outputs.version 取得其輸出。
|
||
id: release-tag-version
|
||
# 引用 release-tag-version composite action,版本以變數 vars.ACTION_RELEASE_TAG_VERSION 釘選 (集中於 repo/org 變數管理,便於統一升版)。
|
||
uses: https://gitea.jsc.idv.tw/composite-actions/release-tag-version@${{ vars.ACTION_RELEASE_TAG_VERSION }}
|
||
# 傳遞給該 action 的輸入參數。
|
||
with:
|
||
# is_beta 設為 true 表示走 beta 標版流程 (標註的是 beta 成品版本,而非正式版)。
|
||
is_beta: true
|
||
release-cleanup:
|
||
name: Release Cleanup
|
||
runs-on: ubuntu
|
||
needs: release-tag-version
|
||
steps:
|
||
- name: 清理舊成品
|
||
uses: https://gitea.jsc.idv.tw/docker-actions/release-cleanup@v${{ needs.release-tag-version.outputs.version }}
|
||
|