Files
calculate-next-version/action.yml
T

67 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================================
# 用途:Gitea/GitHub Docker container action「Calculate Next Version」的
# metadata 定義檔。宣告此 action 的名稱、輸入(is_beta)、輸出(value
# 與執行方式(runner 於執行時就地以 Dockerfile 建置映像並以 entrypoint.sh 啟動)。
# 由 workflow 以 `uses:` 引用本 repo 時,runner 讀取此檔決定如何執行。
# 更新時間:2026/07/16 11:18:57
# ============================================================================
# action 的顯示名稱:出現在 workflow log 與 marketplace/action 清單中,
# 供使用者辨識此步驟在做什麼
name: 'Calculate Next Version'
# action 的一句話用途說明:從 git tag 取得最新版號,依 is_beta 分流計算
# 下一個正式版(X.Y.Z)或 beta 版(X.Y.Z-beta.N)版號,各號碼滿 9 進位,
# 結果輸出為 value;與 entrypoint.sh 啟動訊息、README 的描述一致
description: '從 git tag 取得最新版號,依 is_beta 計算下一個正式版或 beta 版號(各號碼滿 9 進位)並輸出為 value。'
# action 作者,僅供標示用途,不影響執行
author: 'Jeffery'
# 輸入參數區:workflow 以 `with:` 傳入的值,
# runner 會轉成 INPUT_<大寫參數名> 環境變數注入容器
inputs:
# is_beta:是否產生 beta 版號;runner 會以 INPUT_IS_BETA 環境變數
# 傳入容器,由主程式 src/index.js 讀取後決定版號計算分流
is_beta:
# 參數說明:true 時產生 X.Y.Z-beta.N 格式的 beta 版號,
# false(預設)時產生下一個正式版 X.Y.Z
description: '是否為 beta 版(true 時產生 X.Y.Z-beta.N 版號)'
# 非必填:未提供時使用下方 default 值
required: false
# 預設為 'false'(正式版分流);YAML 需以字串表示,
# action 輸入一律為字串,布林判斷由主程式自行解析
default: 'false'
# sha:要檢查的 commit SHA,建議由 workflow 傳入 ${{ gitea.sha }}
# runner 會以 INPUT_SHA 環境變數傳入容器,該 commit 已有版號 tag 時
# 直接輸出該版號(忽略 is_beta)、不再計算下一版
sha:
# 參數說明:未提供時主程式自動改用 runner 內建的 GITHUB_SHA
# 兩者皆空才略過已標記檢查、直接走一般計算流程
description: '要檢查的 commit SHA(建議傳入 ${{ gitea.sha }});該 commit 已有版號 tag 時直接輸出該版號。未提供時自動改用 GITHUB_SHA'
# 非必填:省略時依上述順序自動回退
required: false
# 預設空字串,表示交由主程式依 INPUT_SHA → GITHUB_SHA 順序解析
default: ''
# 輸出參數區:供 workflow 後續步驟以 steps.<id>.outputs.value 取用
outputs:
# value:計算出的下一版號;由主程式(src/index.js)將
# 「value=<版號>」寫入 GITHUB_OUTPUT 檔案而產生,
# container action 不需在此宣告 value 的來源(無 composite 的 value: 欄位)
value:
description: '計算出的下一版號'
# 執行方式定義區:宣告此 action 為 Docker container action 及其啟動方式
runs:
# 使用 docker 執行模式:runner 會以容器方式執行此 action
using: docker
# image 指向 repo 內的 Dockerfile:表示 runner 於「執行時」就地建置映像
# (非預建映像),每次執行都可能觸發 docker build(有 layer 快取時較快)
image: dockerfile
# 覆寫容器進入點為 /action/entrypoint.sh
# 該腳本輸出啟動訊息後以 exec 交棒給 node 主程式 /action/src/index.js
# 與 Dockerfile 的 ENTRYPOINT ["/action/entrypoint.sh"] 一致(此處為明確重申)
entrypoint: /action/entrypoint.sh