1+ name : Publish to Maven & Create GitHub Release
2+
3+ on :
4+ push :
5+ branches :
6+ - master
7+ workflow_dispatch :
8+
9+ env :
10+ SLNE_SNAPSHOTS_REPO_USERNAME : ${{ secrets.SLNE_SNAPSHOTS_REPO_USERNAME }}
11+ SLNE_SNAPSHOTS_REPO_PASSWORD : ${{ secrets.SLNE_SNAPSHOTS_REPO_PASSWORD }}
12+ SLNE_RELEASES_REPO_USERNAME : ${{ secrets.SLNE_RELEASES_REPO_USERNAME }}
13+ SLNE_RELEASES_REPO_PASSWORD : ${{ secrets.SLNE_RELEASES_REPO_PASSWORD }}
14+ DEFAULT_BRANCH : ${{ github.event.repository.default_branch }}
15+
16+ jobs :
17+ publish :
18+ runs-on : ubuntu-latest
19+ environment : production
20+ steps :
21+ - name : Collect Workflow Telemetry
22+ uses : catchpoint/workflow-telemetry-action@v2
23+
24+ - name : Checkout Repository
25+ uses : actions/checkout@v6
26+ with :
27+ fetch-depth : 0
28+
29+ - name : Setup Java
30+ uses : actions/setup-java@v5
31+ with :
32+ distribution : " graalvm"
33+ java-version : 21
34+
35+ - name : Setup Gradle
36+ uses : gradle/actions/setup-gradle@v5
37+
38+ - name : Build with Gradle
39+ run : ./gradlew shadowJar
40+
41+ - name : Publish to Maven
42+ run : ./gradlew publish
43+
44+ - name : Extract Project Version and Snapshot Flag from Gradle
45+ id : get_version
46+ run : |
47+ VERSION=$(./gradlew properties --no-daemon \
48+ | grep '^version:' \
49+ | awk '{print $2}')
50+
51+ if [[ "$VERSION" == *SNAPSHOT* ]]; then
52+ SNAPSHOT_FLAG=true
53+ else
54+ SNAPSHOT_FLAG=false
55+ fi
56+
57+ echo "VERSION=$VERSION" >> $GITHUB_ENV
58+ echo "SNAPSHOT_FLAG=$SNAPSHOT_FLAG" >> $GITHUB_ENV
59+
60+ - name : Determine release flags
61+ run : |
62+ CURRENT_BRANCH=${GITHUB_REF#refs/heads/}
63+ # prerelease only for snapshots
64+ if [ "${SNAPSHOT_FLAG}" = "true" ]; then
65+ echo "PRERELEASE=true" >> $GITHUB_ENV
66+ else
67+ echo "PRERELEASE=false" >> $GITHUB_ENV
68+ fi
69+ # make_latest false for snapshots or non-default branches
70+ if [ "${SNAPSHOT_FLAG}" = "true" ] || [ "${CURRENT_BRANCH}" != "${DEFAULT_BRANCH}" ]; then
71+ echo "MAKE_LATEST=false" >> $GITHUB_ENV
72+ else
73+ echo "MAKE_LATEST=true" >> $GITHUB_ENV
74+ fi
75+
76+ - name : Create GitHub Release
77+ uses : softprops/action-gh-release@v2
78+ with :
79+ tag_name : v${{ env.VERSION }}
80+ name : Release ${{ env.VERSION }}
81+ draft : false
82+ prerelease : ${{ env.PRERELEASE }}
83+ make_latest : ${{ env.MAKE_LATEST }}
84+ generate_release_notes : true
85+ env :
86+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments