@@ -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 "取得最新的版本號"
@@ -24,6 +27,7 @@ echo "--------------------------------------------------"
# 組合 RELEASE_URL 參數,並顯示出來
RELEASE_URL = " $GITEA_SERVER_URL /api/v1/repos/ $GITEA_REPOSITORY /releases " && echo " RELEASE_URL= $RELEASE_URL "
# 檢查是否為空或 "null"
if [ -n " $RUNNER_TOKEN " ] && [ " $RUNNER_TOKEN " != "null" ] ; then
# 組合 RELEASE_HEADER 參數,並顯示出來
RELEASE_HEADER = " Authorization: token $RUNNER_TOKEN " && echo " RELEASE_HEADER= $RELEASE_HEADER "
@@ -35,8 +39,8 @@ else
RELEASE_JSON = " $( curl -s " $RELEASE_URL " ) "
fi
# 從成品資訊取得最新的版本號
LATEST_VERSION = $( echo " $RELEASE_JSON " | jq -r 'if length > 0 then .[0].tag_name else "v0.0.0" end' | sed 's/^v//' )
# 從成品資訊取得最新的正式版版本號(排除 beta, 去除 v 前綴)
LATEST_VERSION = $( echo " $RELEASE_JSON " | jq -r '[.[] | select(.tag_name | test("-beta\\.") | not)] | if length > 0 then .[0].tag_name else "v0.0.0" end' | sed 's/^v//' )
# 並檢查是否為空或 "null" 後
( [ -z " $LATEST_VERSION " ] || [ " $LATEST_VERSION " = "null" ] ) && LATEST_VERSION = "0.0.0"
@@ -67,8 +71,26 @@ 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
echo "=================================================="