Skip to content

Commit d8f9dad

Browse files
committed
Enable version bump check on pull requests
Add pull request trigger for version bump check
1 parent e0c83f2 commit d8f9dad

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#####
2+
# Minecraft Maven Version Bump Check
3+
#####
4+
# Ensures that maven version is bumped or changed before merging.
5+
#####
6+
name: "Version Bump Check"
7+
on:
8+
pull_request:
9+
branches: [ "main" ]
10+
jobs:
11+
ensure-version-bump:
12+
if: ${{ github.base_ref == 'main' || github.base_ref == 'master' }}
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout PR branch
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Extract version from PR branch
22+
id: pr_ver
23+
run: |
24+
PR_VERSION=$(grep -m1 '<version>' pom.xml | sed -E 's/.*<version>(.*)<\/version>.*/\1/')
25+
echo "value=$PR_VERSION" >> $GITHUB_OUTPUT
26+
27+
- name: Extract version from base branch
28+
id: base_ver
29+
run: |
30+
git fetch origin ${{ github.base_ref }} --depth=1
31+
git checkout origin/${{ github.base_ref }} -- pom.xml
32+
BASE_VERSION=$(grep -m1 '<version>' pom.xml | sed -E 's/.*<version>(.*)<\/version>.*/\1/')
33+
echo "value=$BASE_VERSION" >> $GITHUB_OUTPUT
34+
35+
- name: Compare versions
36+
run: |
37+
echo "PR version: ${{ steps.pr_ver.outputs.value }}"
38+
echo "Base version: ${{ steps.base_ver.outputs.value }}"
39+
40+
if [ "${{ steps.pr_ver.outputs.value }}" = "${{ steps.base_ver.outputs.value }}" ]; then
41+
echo "❌ Version has NOT been bumped!"
42+
exit 1
43+
fi
44+
45+
echo "✅ Version has been changed."
46+
47+
- name: Warn if version contains -SNAPSHOT
48+
run: |
49+
VERSION="${{ steps.pr_ver.outputs.value }}"
50+
if [[ "$VERSION" == *"-SNAPSHOT"* ]]; then
51+
echo "::warning title=Snapshot Version Detected::The version contains '-SNAPSHOT'. Consider removing it before release."
52+
fi

0 commit comments

Comments
 (0)