From bc427447c4452ff7e1bfd84fd58f620e4f49e433 Mon Sep 17 00:00:00 2001 From: ranxianglei Date: Fri, 21 Aug 2026 23:34:38 +0800 Subject: [PATCH] fix(ci): tolerate missing 'v' in release branch name, warn on near-miss v0.1.44 was never published: its release branch was named 2026-08-21_release-0.1.44 (no 'v'), the check regex required release-v, so every publish step was silently skipped while the workflow reported success. Accept both variants, and emit a ::warning:: when a release-looking branch does not match. --- .github/workflows/release.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9378a8a..4905e81 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,11 +25,18 @@ jobs: run: | COMMIT_MSG=$(git log -1 --pretty=%B) MERGE_BRANCH=$(echo "$COMMIT_MSG" | sed -n 's/^Merge pull request #[0-9]* from [^/]*\/\(.*\)$/\1/p' || echo "") - if echo "$MERGE_BRANCH" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}_release-v'; then + # Accept both `YYYY-MM-DD_release-vX.Y.Z` (documented) and the + # common `YYYY-MM-DD_release-X.Y.Z` variant (missing `v`). + if echo "$MERGE_BRANCH" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}_release-(v)?[0-9]'; then echo "is_release=true" >> $GITHUB_OUTPUT - elif echo "$COMMIT_MSG" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}_release-v'; then + elif echo "$COMMIT_MSG" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}_release-(v)?[0-9]'; then echo "is_release=true" >> $GITHUB_OUTPUT else + # A release-looking branch that does not match must not skip the + # publish silently (that is how v0.1.44 was lost on 2026-08-21). + if echo "$MERGE_BRANCH" | grep -qi 'release'; then + echo "::warning::Merge from release-looking branch '$MERGE_BRANCH' does not match the release pattern; publish skipped. Rename to YYYY-MM-DD_release-vX.Y.Z and re-merge." + fi echo "is_release=false" >> $GITHUB_OUTPUT fi