1+ name : Publish to Maven & Create GitHub Release
2+
3+ on :
4+ push :
5+ branches :
6+ - version/1.21
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+ MODULE_REGEX : " surf-transaction-api.*-all\\ .jar$|surf-transaction-core.*-all\\ .jar$|surf-transaction-bukkit.*-all\\ .jar$|surf-transaction-velocity.*-all\\ .jar$|surf-transaction-fallback.*-all\\ .jar$"
15+
16+ jobs :
17+ build :
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@v4
26+ with :
27+ fetch-depth : 0
28+
29+ - name : Cache Gradle packages
30+ uses : actions/cache@v3
31+ with :
32+ path : |
33+ ~/.gradle/caches
34+ ~/.gradle/wrapper
35+ key : gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
36+ restore-keys : gradle-${{ runner.os }}-
37+
38+ - name : Setup JDK
39+ uses : actions/setup-java@v4
40+ with :
41+ distribution : ' graalvm'
42+ java-version : ' 21'
43+
44+ - name : Build all modules with Gradle
45+ run : ./gradlew build shadowJar --parallel --no-scan
46+
47+ - name : Check all modules with Gradle
48+ run : ./gradlew check --parallel --no-scan
49+
50+ - name : Publish all modules to Maven
51+ run : ./gradlew publish --parallel --no-scan
52+
53+ - name : Extract Project Version
54+ id : get_version
55+ run : echo "VERSION=$(./gradlew properties | grep "^version:" | awk '{print $2}')" >> $GITHUB_ENV
56+
57+ - name : Find and filter JAR files
58+ id : find_jars
59+ run : |
60+ echo "JAR_FILES<<EOF" >> $GITHUB_ENV
61+ find . -path "**/build/libs/*.jar" | grep -E "${{ env.MODULE_REGEX }}" >> $GITHUB_ENV
62+ echo "EOF" >> $GITHUB_ENV
63+
64+ - name : Create GitHub Release
65+ uses : softprops/action-gh-release@v2
66+ with :
67+ tag_name : v${{ env.VERSION }}
68+ name : Release ${{ env.VERSION }}
69+ draft : false
70+ prerelease : false
71+ files : ${{ env.JAR_FILES }}
72+ env :
73+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments