Skip to content

Commit bbe9fdf

Browse files
author
rahul-infra
committed
fix: Updated Preview.yaml file
1 parent 73c9f78 commit bbe9fdf

File tree

1 file changed

+36
-54
lines changed

1 file changed

+36
-54
lines changed

.github/workflows/version-preview.yaml

Lines changed: 36 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -27,67 +27,49 @@ jobs:
2727
- name: Analyze PR Commits
2828
id: analyze
2929
run: |
30-
echo "Analyzing commits in this PR..."
31-
32-
# Get commits only from this PR (not on base branch)
33-
PR_COMMITS=$(git log origin/${{ github.base_ref }}..HEAD --pretty=format:"%s")
34-
35-
echo "PR Commits:"
36-
echo "$PR_COMMITS"
37-
echo ""
38-
39-
# Check for breaking changes
40-
if echo "$PR_COMMITS" | grep -qE "^(feat|fix|chore|docs|style|refactor|perf|test)(\(.+\))?!:|^BREAKING CHANGE:"; then
41-
RELEASE_TYPE="major"
42-
elif echo "$PR_COMMITS" | grep -qE "^feat(\(.+\))?:"; then
43-
RELEASE_TYPE="minor"
44-
elif echo "$PR_COMMITS" | grep -qE "^fix(\(.+\))?:"; then
45-
RELEASE_TYPE="patch"
30+
# Get commits from this PR
31+
COMMITS=$(git log origin/${{ github.base_ref }}..HEAD --pretty=format:"%s")
32+
echo "Commits in this PR:"
33+
echo "$COMMITS"
34+
35+
# Determine release type
36+
if echo "$COMMITS" | grep -qE "^[a-z]+(\(.+\))?!:|BREAKING CHANGE:"; then
37+
TYPE="major"
38+
elif echo "$COMMITS" | grep -qE "^feat(\(.+\))?:"; then
39+
TYPE="minor"
40+
elif echo "$COMMITS" | grep -qE "^fix(\(.+\))?:"; then
41+
TYPE="patch"
4642
else
47-
RELEASE_TYPE="none"
43+
TYPE="none"
4844
fi
4945
50-
echo "RELEASE_TYPE=$RELEASE_TYPE"
51-
echo "release_type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
52-
53-
# Get current version (latest tag overall, not just reachable from current commit)
54-
CURRENT_VERSION=$(git tag --sort=-v:refname | head -1 || echo "v0.0.0")
55-
CURRENT_VERSION=${CURRENT_VERSION#v}
56-
echo "Current version: v$CURRENT_VERSION"
57-
58-
# Calculate next version
59-
IFS='.' read -r major minor patch <<< "$CURRENT_VERSION"
60-
61-
if [ "$RELEASE_TYPE" = "major" ]; then
62-
major=$((major + 1))
63-
minor=0
64-
patch=0
65-
elif [ "$RELEASE_TYPE" = "minor" ]; then
66-
minor=$((minor + 1))
67-
patch=0
68-
elif [ "$RELEASE_TYPE" = "patch" ]; then
69-
patch=$((patch + 1))
70-
fi
46+
echo "release_type=$TYPE" >> $GITHUB_OUTPUT
47+
echo "Release type: $TYPE"
48+
49+
# Calculate next version if releasing
50+
if [ "$TYPE" != "none" ]; then
51+
CURRENT=$(git tag --sort=-v:refname | head -1 | sed 's/^v//')
52+
IFS='.' read -r maj min pat <<< "$CURRENT"
53+
54+
[ "$TYPE" = "major" ] && maj=$((maj + 1)) && min=0 && pat=0
55+
[ "$TYPE" = "minor" ] && min=$((min + 1)) && pat=0
56+
[ "$TYPE" = "patch" ] && pat=$((pat + 1))
7157
72-
if [ "$RELEASE_TYPE" != "none" ]; then
73-
NEXT_VERSION="$major.$minor.$patch"
74-
echo "next_version=$NEXT_VERSION" >> $GITHUB_OUTPUT
58+
VERSION="$maj.$min.$pat"
59+
echo "next_version=$VERSION" >> $GITHUB_OUTPUT
7560
echo "will_release=true" >> $GITHUB_OUTPUT
76-
echo "Next version: $NEXT_VERSION"
61+
echo "Next version: v$VERSION"
62+
63+
# Generate notes
64+
{
65+
echo "release_notes<<EOF"
66+
echo "## Changes in this PR"
67+
echo ""
68+
echo "$COMMITS" | sed 's/^/- /'
69+
echo "EOF"
70+
} >> $GITHUB_OUTPUT
7771
else
7872
echo "will_release=false" >> $GITHUB_OUTPUT
79-
echo "No release will be created"
80-
fi
81-
82-
# Generate release notes
83-
if [ "$RELEASE_TYPE" != "none" ]; then
84-
NOTES="## Changes in this PR\n\n"
85-
while IFS= read -r commit; do
86-
NOTES="${NOTES}- ${commit}\n"
87-
done <<< "$PR_COMMITS"
88-
echo "release_notes<<EOF" >> $GITHUB_OUTPUT
89-
echo -e "$NOTES" >> $GITHUB_OUTPUT
90-
echo "EOF" >> $GITHUB_OUTPUT
9173
fi
9274
9375
- name: Comment PR

0 commit comments

Comments
 (0)