@@ -25,27 +25,29 @@ jobs:
25
25
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
26
26
run : |
27
27
set -e
28
+
28
29
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
29
- if ! echo "$COMMIT_MESSAGE" | grep -E '^(feat!|feat:|fix:)'; then
30
+ if ! echo "$COMMIT_MESSAGE" | grep -E '^(feat!|feat:|fix:)' >/dev/null ; then
30
31
echo "No release needed"
31
32
exit 0
32
33
fi
33
-
34
- LATEST_TAG=$(git tag -l '[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n 1)
34
+
35
+ # Fetch latest semver tag
36
+ LATEST_TAG=$(git tag -l '[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n 1 || true)
37
+ LATEST_TAG=$(echo "$LATEST_TAG" | tr -d '[:space:]')
35
38
CURRENT_VERSION="${LATEST_TAG:-0.0.0}"
36
- # Use POSIX-compatible method instead of here-string
39
+
37
40
IFS='.'; set -- "$CURRENT_VERSION"; MAJOR=$1; MINOR=$2; PATCH=$3
38
-
41
+
39
42
case "$COMMIT_MESSAGE" in
40
43
feat!*) MAJOR=$((MAJOR + 1)); MINOR=0; PATCH=0 ;;
41
44
feat:*) MINOR=$((MINOR + 1)); PATCH=0 ;;
42
45
fix:*) PATCH=$((PATCH + 1)) ;;
43
46
esac
44
-
47
+
45
48
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
46
- # Use proper variable expansion
47
49
BRANCH_NAME="${GITHUB_REF_NAME}"
48
-
50
+
49
51
if [ "$BRANCH_NAME" = "main" ]; then
50
52
RELEASE_TAG="$NEW_VERSION"
51
53
RELEASE_TITLE="Release $NEW_VERSION"
@@ -55,21 +57,21 @@ jobs:
55
57
RELEASE_TITLE="Pre-release next-$NEW_VERSION"
56
58
IS_PRERELEASE=true
57
59
fi
58
-
60
+
59
61
echo "Bumping version to $RELEASE_TAG"
60
62
git config user.name "GitHub Actions"
61
63
git config user.email "actions@github.com"
62
- # Properly quote variables
63
64
git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
65
+
64
66
git tag -a "$RELEASE_TAG" -m "$RELEASE_TAG"
65
67
git push origin "$RELEASE_TAG"
66
-
67
- if [ -z "$LATEST_TAG" ]; then
68
- RELEASE_NOTES=$(git log --pretty=format:"- %s")
69
- else
68
+
69
+ if [ -n "$LATEST_TAG" ]; then
70
70
RELEASE_NOTES=$(git log "$LATEST_TAG"..HEAD --pretty=format:"- %s")
71
+ else
72
+ RELEASE_NOTES=$(git log --pretty=format:"- %s")
71
73
fi
72
-
74
+
73
75
gh release create "$RELEASE_TAG" \
74
76
--title "$RELEASE_TITLE" \
75
77
--notes "$RELEASE_NOTES" \
0 commit comments