Skip to content

Commit caedb44

Browse files
authored
Merge pull request #7 from Dev-LotusStudio/Referix-patch-1
Update gradle-publish.yml
2 parents 6349351 + c6438b6 commit caedb44

File tree

1 file changed

+55
-11
lines changed

1 file changed

+55
-11
lines changed

.github/workflows/gradle-publish.yml

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,72 @@ on:
55
branches:
66
- dev
77
- release
8+
pull_request:
9+
branches:
10+
- dev
11+
- release
812

913
permissions:
1014
contents: write
1115

1216
jobs:
1317

18+
validate-pr:
19+
if: github.event_name == 'pull_request'
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Validate PR rules
23+
run: |
24+
base="${{ github.event.pull_request.base.ref }}"
25+
head="${{ github.event.pull_request.head.ref }}"
26+
27+
echo "Checking PR: $head → $base"
28+
29+
# ✅ У release можна тільки з dev
30+
if [[ "$base" == "release" && "$head" != "dev" ]]; then
31+
echo "❌ Only 'dev' can be merged into 'release'."
32+
exit 1
33+
fi
34+
35+
# ✅ У dev можна з будь-якої гілки
36+
if [[ "$base" == "dev" ]]; then
37+
echo "✅ Allowed: any → dev"
38+
exit 0
39+
fi
40+
41+
# ❌ Все інше заборонено
42+
echo "❌ Pull requests allowed only into 'dev' (or dev → release)."
43+
exit 1
44+
1445
build:
46+
if: github.event_name == 'push'
1547
runs-on: ubuntu-latest
1648
outputs:
1749
new_version: ${{ steps.bump_version.outputs.new }}
1850
steps:
1951
- uses: actions/checkout@v4
2052
with:
2153
fetch-depth: 0
54+
55+
# 🚫 Перевірка пушів у release (дозволяється тільки merge з dev)
56+
- name: Validate push rules
57+
run: |
58+
BRANCH="${GITHUB_REF##*/}"
59+
if [ "$BRANCH" == "release" ]; then
60+
COMMIT_MSG=$(git log -1 --pretty=%B)
61+
if [[ ! "$COMMIT_MSG" =~ "Merge pull request" ]]; then
62+
echo "❌ Direct pushes to release are not allowed. Only PR merges from dev."
63+
exit 1
64+
fi
65+
fi
66+
echo "✅ Push validation passed."
67+
2268
- name: Set up JDK
2369
uses: actions/setup-java@v4
2470
with:
2571
distribution: temurin
2672
java-version: 17
73+
2774
- name: Determine Version
2875
id: bump_version
2976
run: |
@@ -47,7 +94,7 @@ jobs:
4794
MAJOR=0; MINOR=0; PATCH=0
4895
fi
4996
echo "Parsed version: $MAJOR.$MINOR.$PATCH"
50-
# Беремо коміти після тегу, якщо тег є
97+
# Беремо коміти після тегу
5198
if [ -n "$LAST_TAG" ]; then
5299
COMMITS=$(git log "$LAST_TAG"..HEAD --pretty=format:"%s")
53100
else
@@ -64,21 +111,15 @@ jobs:
64111
# Збільшуємо версію
65112
case $BUMP in
66113
major)
67-
MAJOR=$((MAJOR+1))
68-
MINOR=0
69-
PATCH=0
70-
;;
114+
MAJOR=$((MAJOR+1)); MINOR=0; PATCH=0 ;;
71115
minor)
72-
MINOR=$((MINOR+1))
73-
PATCH=0
74-
;;
116+
MINOR=$((MINOR+1)); PATCH=0 ;;
75117
patch)
76-
PATCH=$((PATCH+1))
77-
;;
118+
PATCH=$((PATCH+1)) ;;
78119
esac
79120
80121
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
81-
# Для dev додаємо pre-release лічильник
122+
# Для dev додаємо pre-release
82123
if [ "$BRANCH_NAME" == "dev" ]; then
83124
COUNT=$(git tag --list "v${NEW_VERSION}-dev.*" | wc -l | xargs)
84125
COUNT=${COUNT:-0}
@@ -90,8 +131,10 @@ jobs:
90131
91132
- name: Grant execute permission for gradlew
92133
run: chmod +x gradlew
134+
93135
- name: Build with Gradle
94136
run: ./gradlew build
137+
95138
- name: Rename JAR with repo name and version
96139
run: |
97140
VERSION="${{ steps.bump_version.outputs.new }}"
@@ -104,6 +147,7 @@ jobs:
104147
NEW_JAR_NAME="${REPO_NAME}_v${VERSION}.jar"
105148
echo "Renaming $JAR_PATH -> $NEW_JAR_NAME"
106149
mv "$JAR_PATH" "build/libs/$NEW_JAR_NAME"
150+
107151
- name: Upload artifact
108152
uses: actions/upload-artifact@v4
109153
with:

0 commit comments

Comments
 (0)