Skip to content

Commit 62109a8

Browse files
committed
feat: enhance versioning logic for beta and regular releases
1 parent b41de1c commit 62109a8

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

.github/workflows/prepare-tag.yml

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,29 @@ jobs:
3434
3535
if [ $INPUT_VERSION = "next" ]; then
3636
CURR=$(jq -r .version package.json)
37-
MAJOR=$(echo $CURR | cut -d. -f1)
38-
MINOR=$(echo $CURR | cut -d. -f2)
39-
PATCH=$(echo $CURR | cut -d. -f3)
40-
NEW_PATCH=$((PATCH+1))
41-
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
37+
BRANCH_NAME="${{ github.ref_name }}"
38+
39+
# Check if branch name contains "beta"
40+
if [[ $BRANCH_NAME == *"beta"* ]]; then
41+
# Handle beta version (e.g., 3.7.1-beta.1 -> 3.7.1-beta.2)
42+
if [[ $CURR =~ ^([0-9]+\.[0-9]+\.[0-9]+-beta\.)([0-9]+)$ ]]; then
43+
BASE="${BASH_REMATCH[1]}"
44+
BETA_NUM="${BASH_REMATCH[2]}"
45+
NEW_BETA_NUM=$((BETA_NUM+1))
46+
NEW_VERSION="${BASE}${NEW_BETA_NUM}"
47+
echo "::notice::Incrementing beta version: $CURR -> $NEW_VERSION"
48+
else
49+
echo "::error::Branch contains 'beta' but version format is invalid: $CURR"
50+
exit 1
51+
fi
52+
else
53+
# Handle regular version (e.g., 3.7.1 -> 3.7.2)
54+
MAJOR=$(echo $CURR | cut -d. -f1)
55+
MINOR=$(echo $CURR | cut -d. -f2)
56+
PATCH=$(echo $CURR | cut -d. -f3)
57+
NEW_PATCH=$((PATCH+1))
58+
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
59+
fi
4260
VERSION="$NEW_VERSION"
4361
else
4462
VERSION="${{ github.event.inputs.version }}"

0 commit comments

Comments
 (0)