Skip to content

Commit 22d25fc

Browse files
authored
Create build.yml
1 parent 8bd80ee commit 22d25fc

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

.github/workflows/build.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Build & Release
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- dev
8+
tags:
9+
- '1.*' # Matches tags like 1.4.7 or 1.4.7-SNAPSHOT
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v3
18+
19+
- name: Set up Java
20+
uses: actions/setup-java@v3
21+
with:
22+
distribution: 'temurin'
23+
java-version: '17'
24+
25+
- name: Determine build version
26+
id: versioning
27+
run: |
28+
REF=${GITHUB_REF#refs/*/}
29+
SHORT_SHA=$(git rev-parse --short HEAD)
30+
31+
if [[ "$GITHUB_REF" == refs/tags/*-SNAPSHOT ]]; then
32+
VERSION="$REF"
33+
RELEASE_TYPE="prerelease"
34+
elif [[ "$GITHUB_REF" == refs/heads/master ]]; then
35+
VERSION="$REF"
36+
RELEASE_TYPE="release"
37+
elif [[ "$GITHUB_REF" == refs/heads/dev ]]; then
38+
VERSION="1.4.7-DEVBUILD.${GITHUB_RUN_NUMBER}"
39+
RELEASE_TYPE="none"
40+
else
41+
VERSION="manual-${SHORT_SHA}"
42+
RELEASE_TYPE="none"
43+
fi
44+
45+
echo "VERSION=$VERSION" >> $GITHUB_ENV
46+
echo "RELEASE_TYPE=$RELEASE_TYPE" >> $GITHUB_ENV
47+
48+
- name: Build with Maven
49+
run: mvn clean package -Drevision=${{ env.VERSION }}
50+
51+
- name: Rename output JAR
52+
run: |
53+
mkdir dist
54+
cp target/*.jar dist/AutoPickup-${{ env.VERSION }}.jar
55+
56+
- name: Upload Dev Build Artifact
57+
if: env.RELEASE_TYPE == 'none'
58+
uses: actions/upload-artifact@v4
59+
with:
60+
name: AutoPickup-${{ env.VERSION }}
61+
path: dist/*.jar
62+
63+
- name: Publish GitHub Release
64+
if: env.RELEASE_TYPE != 'none'
65+
uses: softprops/action-gh-release@v1
66+
with:
67+
tag_name: ${{ env.VERSION }}
68+
name: AutoPickup ${{ env.VERSION }}
69+
files: dist/AutoPickup-${{ env.VERSION }}.jar
70+
prerelease: ${{ env.RELEASE_TYPE == 'prerelease' }}

0 commit comments

Comments
 (0)