Skip to content

Commit 3b7c028

Browse files
author
zhoukai
committed
refactor: standardize tag creation logic for conflict resolution
- Remove branch-specific tag formats when tags conflict - Use unified v{VERSION}-{COMMIT_ID} format for all branches - Simplify auto-increment logic to avoid dev/test suffixes - Maintain original branch-specific behavior for non-conflict cases
1 parent 969542a commit 3b7c028

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

.github/workflows/build-and-release.yml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
run: |
212212
VERSION=$(node -p "require('./package.json').version")
213213
BRANCH_NAME="${{ github.ref_name }}"
214-
214+
215215
# 根据分支添加标识
216216
if [[ "$BRANCH_NAME" == "dev" ]]; then
217217
TAG_NAME="v$VERSION-test"
@@ -220,36 +220,34 @@ jobs:
220220
TAG_NAME="v$VERSION"
221221
echo "🚀 Production release: $TAG_NAME"
222222
fi
223-
223+
224224
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
225-
225+
226226
# 检查远程tag是否已存在
227227
if git ls-remote --tags origin | grep -q "refs/tags/$TAG_NAME$"; then
228228
echo "⚠️ Tag $TAG_NAME already exists, auto-incrementing version..."
229-
229+
230230
# 解析版本号(假设格式为 v1.2.3)
231231
if [[ $VERSION =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
232232
MAJOR=${BASH_REMATCH[1]}
233233
MINOR=${BASH_REMATCH[2]}
234234
PATCH=${BASH_REMATCH[3]}
235-
236-
# 递增patch版本
235+
236+
# 递增patch版本并添加commit ID
237237
NEW_PATCH=$((PATCH + 1))
238238
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}"
239-
240-
# 获取commit ID用于预发布标识
241239
COMMIT_SHORT=$(git rev-parse --short HEAD)
242-
TAG_NAME="v${NEW_VERSION}-dev-${COMMIT_SHORT}"
243-
244-
echo "🚀 Auto-incremented to development version: $TAG_NAME"
245-
echo "📝 This represents development work towards v${NEW_VERSION}"
240+
241+
TAG_NAME="v${NEW_VERSION}-${COMMIT_SHORT}"
242+
echo "🚀 Auto-incremented with commit ID: $TAG_NAME"
243+
echo "📝 This represents work towards v${NEW_VERSION}"
246244
else
247-
# 兜底方案:如果版本号格式不匹配,使用原来的逻辑
245+
# 兜底方案:如果版本号格式不匹配,使用commit ID
248246
COMMIT_SHORT=$(git rev-parse --short HEAD)
249-
TAG_NAME="${TAG_NAME}-${COMMIT_SHORT}"
247+
TAG_NAME="v${VERSION}-${COMMIT_SHORT}"
250248
echo "⚠️ Fallback: creating tag with commit ID: $TAG_NAME"
251249
fi
252-
250+
253251
# 更新输出变量
254252
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
255253
fi

0 commit comments

Comments
 (0)