From 16d2afca4863954287388dcab7a8771aa3548464 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 24 Mar 2026 18:17:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8A=A0=E5=85=A5=20beta=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=A8=88=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- action.yaml | 7 ++++++- entrypoint.sh | 23 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/action.yaml b/action.yaml index d6575ad..05e62de 100644 --- a/action.yaml +++ b/action.yaml @@ -1,6 +1,10 @@ name: 'CALCULATE VERSION' description: '計算版本號' author: 'Jeffery' +inputs: + IS_BETA: + description: '是否為 beta 版本' + default: "false" outputs: version: description: '計算出的版本號' @@ -10,4 +14,5 @@ runs: env: GITEA_SERVER_URL: ${{ gitea.server_url }} GITEA_REPOSITORY: ${{ gitea.repository }} - RUNNER_TOKEN: ${{ secrets.RUNNER_TOKEN }} \ No newline at end of file + RUNNER_TOKEN: ${{ secrets.RUNNER_TOKEN }} + IS_BETA: ${{ inputs.IS_BETA }} \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index eb7eab4..483ea2d 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -15,6 +15,9 @@ echo "GITEA_REPOSITORY=$GITEA_REPOSITORY" && ([ -z "$GITEA_REPOSITORY" ] || [ "$ # 顯示 RUNNER_TOKEN 參數 echo "RUNNER_TOKEN=$RUNNER_TOKEN" +# 顯示 IS_BETA 參數,未設定時預設為 false +echo "IS_BETA=$IS_BETA" && ([ -z "$IS_BETA" ] || [ "$IS_BETA" = "null" ]) && IS_BETA="false" + echo "==================================================" echo "取得最新的版本號" @@ -67,8 +70,24 @@ PATCH=$((PATCH + 1)) # 如果 MINOR >= 10,重置為 0 並增加 MAJOR 版本 [ $MINOR -ge 10 ] && { MINOR=0; MAJOR=$((MAJOR + 1)); } -# 組合新的版本號,並顯示 -NEW_VERSION="$MAJOR.$MINOR.$PATCH" && echo "NEW_VERSION=$NEW_VERSION" +# 組合新的版本號 +NEW_VERSION="$MAJOR.$MINOR.$PATCH" + +# 如果是 beta 版本,計算 beta 編號 +if [ "$IS_BETA" = "true" ]; then + # 從所有 release 中找出符合 NEW_VERSION-beta.N 的最大 beta 編號 + BETA=$(echo "$RELEASE_JSON" | jq -r --arg prefix "v$NEW_VERSION-beta." \ + '[.[] | select(.tag_name | startswith($prefix)) | .tag_name | ltrimstr($prefix) | tonumber] | if length > 0 then max else 0 end') + + BETA=$((BETA + 1)) + + NEW_VERSION="$NEW_VERSION-beta.$BETA" && echo "NEW_VERSION=$NEW_VERSION" + + # 將版本輸出到環境變數 + echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT && exit 0 +fi + +echo "NEW_VERSION=$NEW_VERSION" # 將版本輸出到環境變數 echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT \ No newline at end of file