53 lines
2.9 KiB
YAML
53 lines
2.9 KiB
YAML
# =============================================================================
|
||
# 檔案用途:Gitea CD(Continuous Delivery)workflow 設定檔
|
||
#
|
||
# 本檔定義一條名為 CD 的 Gitea Actions workflow,負責在程式碼推送到
|
||
# master 分支時,自動執行「釋出並標註成品版本」的流程。實際的版本標註
|
||
# 邏輯由本 repo 根目錄的 composite action(action.yml)提供,此 workflow
|
||
# 僅負責觸發與串接該 composite action。
|
||
#
|
||
# 更新日期:2026/06/26 10:14:14(Asia/Taipei)
|
||
# =============================================================================
|
||
|
||
# workflow 的顯示名稱,會出現在 Gitea Actions 的執行列表中。
|
||
name: CD
|
||
|
||
# on:定義觸發本 workflow 的事件。
|
||
on:
|
||
# push:當有 commit 被推送到 repository 時觸發。
|
||
push:
|
||
# branches:限制只有特定分支的 push 才會觸發。
|
||
branches:
|
||
# 僅限 master 分支;推送到其他分支不會啟動本 CD workflow。
|
||
# 這確保版本釋出只在正式主線(master)發生,避免在開發分支誤觸發發版。
|
||
- master
|
||
|
||
# jobs:本 workflow 包含的工作(job)集合。
|
||
jobs:
|
||
# release-tag-version:唯一的 job,負責釋出並標註成品版本。
|
||
release-tag-version:
|
||
# job 的顯示名稱,會出現在 Gitea Actions 的執行畫面上。
|
||
name: Release Tag Version
|
||
# runs-on:指定執行此 job 的 runner 標籤(label)。
|
||
# 此處使用 ubuntu,代表會在標記為 ubuntu 的 Gitea runner 上執行。
|
||
# 需人工確認:通常 GitHub Actions 慣例為 ubuntu-latest;此處為 ubuntu,
|
||
# 請確認 Gitea runner 確實有註冊 "ubuntu" 這個 label,否則 job 不會被排程。
|
||
runs-on: ubuntu
|
||
# steps:此 job 依序執行的步驟清單。
|
||
steps:
|
||
# 步驟一:取得(checkout)程式碼,讓後續步驟能存取 repo 內容。
|
||
- name: 取得程式碼
|
||
# uses:引用官方 actions/checkout action 來簽出原始碼。
|
||
# 版本號透過 Gitea 變數 vars.ACTION_CHECKOUT_VERSION 動態帶入,
|
||
# 便於集中管理 checkout 版本,不必逐檔硬編碼版本字串。
|
||
# 副作用:未取得程式碼前,下一步的本地 composite action(./)將無法被解析。
|
||
# 需人工確認:請確認 repository / organization 層級已設定
|
||
# ACTION_CHECKOUT_VERSION 這個變數,否則 uses 會解析成空版本而失敗。
|
||
uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }}
|
||
# 步驟二:釋出並標註成品版本,為本 workflow 的核心動作。
|
||
- name: 釋出並標註成品版本
|
||
# uses: ./ 代表引用「本 repo 根目錄」的 composite action(即 action.yml)。
|
||
# 必須先完成步驟一的 checkout,根目錄的 action.yml 才存在於 runner 上而可被引用。
|
||
# 此 composite action 內含實際的版本標註與發版邏輯(請見根目錄 action.yml)。
|
||
uses: ./
|