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