Skip to content

Commit e9d26d0

Browse files
authored
Merge pull request #24 from Dev-LotusStudio/Referix-patch-workflows
Update gradle-publish.yml
2 parents 27ee088 + 01f651e commit e9d26d0

File tree

1 file changed

+16
-28
lines changed

1 file changed

+16
-28
lines changed

.github/workflows/gradle-publish.yml

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,18 @@ jobs:
7474
- name: Determine Version
7575
id: bump_version
7676
run: |
77-
set -e
77+
set -euo pipefail
7878
BRANCH_NAME=${GITHUB_REF##*/}
7979
echo "Branch: $BRANCH_NAME"
8080
8181
if [ "$BRANCH_NAME" == "release" ]; then
82-
# беремо тільки стабільні теги vX.Y.Z
83-
LAST_TAG=$(git tag --list "v[0-9]*.[0-9]*.[0-9]*" --sort=-creatordate | tail -n1)
82+
LAST_TAG=$(git tag --list "v[0-9]*.[0-9]*.[0-9]*" --sort=-v:refname | head -n1 || true)
8483
else
85-
# беремо тільки dev/pre-release теги
86-
LAST_TAG=$(git tag --list "v*-dev.*" --sort=-creatordate | tail -n1)
84+
LAST_TAG=$(git tag --list "v*-dev.*" --sort=-v:refname | head -n1 || true)
8785
fi
8886
8987
echo "Last tag: $LAST_TAG"
9088
91-
# Розбираємо версію
9289
if [ -n "$LAST_TAG" ]; then
9390
BASE_VERSION=$(echo "$LAST_TAG" | sed 's/^v//' | sed 's/-dev.*//')
9491
MAJOR=$(echo "$BASE_VERSION" | cut -d. -f1)
@@ -99,7 +96,7 @@ jobs:
9996
fi
10097
echo "Parsed version: $MAJOR.$MINOR.$PATCH"
10198
102-
# Беремо коміти після тегу
99+
# Коміти після останнього тега (або всі, якщо ще немає тегів)
103100
if [ -n "$LAST_TAG" ]; then
104101
COMMITS=$(git log "$LAST_TAG"..HEAD --pretty=format:"%s")
105102
else
@@ -108,14 +105,13 @@ jobs:
108105
109106
# Визначаємо bump
110107
BUMP="patch"
111-
if echo "$COMMITS" | grep -qE "^BREAKING CHANGE:"; then
108+
if echo "$COMMITS" | grep -q "BREAKING CHANGE:"; then
112109
BUMP="major"
113-
elif echo "$COMMITS" | grep -qE "^feat:"; then
110+
elif echo "$COMMITS" | grep -qE '^feat(\(|:)' ; then
114111
BUMP="minor"
115112
fi
116113
echo "Determined bump type: $BUMP"
117114
118-
# Збільшуємо версію
119115
case $BUMP in
120116
major)
121117
MAJOR=$((MAJOR+1))
@@ -131,31 +127,23 @@ jobs:
131127
;;
132128
esac
133129
134-
# ⚠️ Overflow патча на мінор
135-
PATCH_MAX=10
136-
if [ "$PATCH" -ge "$PATCH_MAX" ]; then
137-
PATCH=0
138-
MINOR=$((MINOR+1))
139-
fi
140-
141-
# ⚠️ Overflow мінору на мейджор
142-
MINOR_MAX=10
143-
if [ "$MINOR" -ge "$MINOR_MAX" ]; then
144-
MINOR=0
145-
MAJOR=$((MAJOR+1))
146-
fi
147-
148130
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
149131
150-
# Для dev додаємо pre-release лічильник
132+
# Для dev додаємо dev.N, де N = останній номер + 1
151133
if [ "$BRANCH_NAME" == "dev" ]; then
152-
COUNT=$(git tag --list "v${NEW_VERSION}-dev.*" | wc -l | xargs)
153-
COUNT=${COUNT:-0}
154-
NEW_VERSION="${NEW_VERSION}-dev.$((COUNT+1))"
134+
LAST_DEV_TAG=$(git tag --list "v${NEW_VERSION}-dev.*" --sort=-v:refname | head -n1 || true)
135+
if [ -n "$LAST_DEV_TAG" ]; then
136+
LAST_DEV_NUM=$(echo "$LAST_DEV_TAG" | sed -E 's/^v[0-9]+\.[0-9]+\.[0-9]+-dev\.([0-9]+)$/\1/')
137+
NEXT_DEV_NUM=$((LAST_DEV_NUM+1))
138+
else
139+
NEXT_DEV_NUM=1
140+
fi
141+
NEW_VERSION="${NEW_VERSION}-dev.${NEXT_DEV_NUM}"
155142
fi
156143
157144
echo "New version: $NEW_VERSION"
158145
echo "new=$NEW_VERSION" >> $GITHUB_OUTPUT
146+
159147
160148

161149
- name: Grant execute permission for gradlew

0 commit comments

Comments
 (0)