From f8b3303d0ba9b3e87f86e353876425a09cb0a91d Mon Sep 17 00:00:00 2001 From: liyi Date: Fri, 30 May 2025 14:36:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0tag=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=97=B6=E8=BE=93=E5=87=BA=E6=97=A5=E5=BF=97,ci=E4=B8=AD?= =?UTF-8?q?=E5=88=A4=E6=96=ADtag=E7=9A=84=E6=AD=A3=E5=88=99=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=BA=E5=A2=9E=E5=8A=A0sky=E5=90=8E=E7=BC=80?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 2 +- tag_generator.sh | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e68a2798..2131843f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ variables: - if: $CI_COMMIT_BRANCH == "release_sky" - if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/ - if: $CI_COMMIT_BRANCH == "canary_release_sky" - - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/ + - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?(_sky)?$/ .notify_rule: tags: diff --git a/tag_generator.sh b/tag_generator.sh index 5fd79429..84811faf 100755 --- a/tag_generator.sh +++ b/tag_generator.sh @@ -30,11 +30,18 @@ newest_sky_tag=$(echo "$sky_tags" | head -n 1) if [ -z "$newest_sky_tag" ]; then # 取最新的 tag(不管是否带_sky) latest_tag=$(echo "$tags" | head -n 1) + echo "DEBUG: tags=[$tags]" + echo "DEBUG: latest_tag=[$latest_tag]" if [ -n "$latest_tag" ]; then # 提取版本号部分(去掉前缀v和后缀_sky等) version_part=${latest_tag#v} # 去掉v version_part=${version_part%_sky} # 去掉_sky(如果有) + version_part=$(echo "$version_part" | tr -d ' \n\r') + echo "DEBUG: version_part=[$version_part]" IFS='.' read -r major minor patch <<< "$version_part" + if [ -z "$major" ]; then major=1; fi + if [ -z "$minor" ]; then minor=0; fi + if [ -z "$patch" ]; then patch=0; fi next_tag="v$major.$minor.$patch_sky" else next_tag="v1.0.0_sky" @@ -44,7 +51,12 @@ else # 例如 v1.5.556_sky -> 1.5.556 version_part=${newest_sky_tag%_sky} # 去掉 _sky 后缀 version_part=${version_part#v} # 去掉 v 前缀 + version_part=$(echo "$version_part" | tr -d ' \n\r') + echo "DEBUG: version_part=[$version_part]" IFS='.' read -r major minor patch <<< "$version_part" # 拆分出主、次、修订号 + if [ -z "$major" ]; then major=1; fi + if [ -z "$minor" ]; then minor=0; fi + if [ -z "$patch" ]; then patch=0; fi compare_json="" # 用于存储 commit 对比结果 # 判断命令参数,决定对比范围 if [[ "$1" == "generate_tag" ]];then