44# against bad commits.
55
66name : build
7- on : [pull_request, push]
7+
8+ on :
9+ release :
10+ types :
11+ - published
12+ push :
13+ branches :
14+ - ' **'
15+ tags-ignore :
16+ - ' **'
17+ pull_request :
18+ workflow_dispatch :
19+
20+ permissions :
21+ id-token : write
22+ attestations : write
23+ contents : write
824
925jobs :
10- build :
11- strategy :
12- matrix :
13- # Use these Java versions
14- java : [
15- 17, # Current Java LTS & minimum supported by Minecraft
16- 21, # Current Java LTS
17- ]
18- runs-on : ubuntu-22.04
26+ release :
27+ runs-on : ubuntu-latest
1928 steps :
20- - name : checkout repository
29+ - name : Checkout
2130 uses : actions/checkout@v4
22- - name : validate gradle wrapper
23- uses : gradle/wrapper-validation-action@v2
24- - name : setup jdk ${{ matrix.java }}
31+
32+ - name : JDK Setup
2533 uses : actions/setup-java@v4
2634 with :
27- java-version : ${{ matrix.java }}
28- distribution : ' microsoft'
29- - name : make gradle wrapper executable
35+ java-version : 21
36+ distribution : ' temurin'
37+
38+ - name : Gradle Setup
39+ uses : gradle/actions/setup-gradle@v4
40+ with :
41+ validate-wrappers : true
42+
43+ - name : Enable gradlew execution
3044 run : chmod +x ./gradlew
31- - name : build
45+
46+ - name : Gradle Build
3247 run : ./gradlew build
33- - name : capture build artifacts
34- if : ${{ matrix.java == '21' }} # Only upload artifacts built from latest java
48+
49+ - name : Attest Build Provenance
50+ uses : actions/attest-build-provenance@v2
51+ with :
52+ subject-path : ' **/build/libs/*.jar, !**/build/libs/*-sources.jar'
53+
54+ - name : Upload Artifacts
3555 uses : actions/upload-artifact@v4
3656 with :
3757 name : Artifacts
38- path : build/libs/
58+ path : |
59+ **/build/libs/*.jar
60+ !**/build/libs/*-sources.jar
61+
62+ - name : Github Publish
63+ if : github.event_name == 'release' && github.event.action == 'published'
64+ uses : AButler/upload-release-assets@v2.0
65+ with :
66+ files : ' **/build/libs/*.jar;!**/build/libs/*-sources.jar'
67+ repo-token : ${{ secrets.GITHUB_TOKEN }}
68+
69+ - name : Modrinth Publish
70+ env :
71+ MODRINTH_TOKEN : ${{ secrets.MODRINTH_TOKEN }}
72+ CHANGELOG : ${{ github.event.release.body }}
73+ if : ${{ github.event_name == 'release' && github.event.action == 'published' && env.MODRINTH_TOKEN != '' }}
74+ run : |
75+ ./gradlew --no-configuration-cache modrinth
76+ ./gradlew --no-configuration-cache modrinthSyncBody
0 commit comments