1+ name : Release on Modrinth
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ workflow_dispatch :
8+
9+ jobs :
10+ build :
11+ name : Build ShadowJars and Create Release
12+ runs-on : ubuntu-latest
13+
14+ steps :
15+ - name : Checkout repository
16+ uses : actions/checkout@v3
17+ with :
18+ ref : main
19+
20+ - name : Set up JDK 21
21+ uses : actions/setup-java@v3
22+ with :
23+ distribution : ' adopt'
24+ java-version : ' 21'
25+
26+ - name : Cache Gradle packages
27+ uses : actions/cache@v3
28+ with :
29+ path : |
30+ ~/.gradle/caches
31+ ~/.gradle/wrapper
32+ key : gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
33+ restore-keys : |
34+ gradle-${{ runner.os }}
35+
36+ - name : Make gradlew executable
37+ run : chmod +x ./gradlew
38+
39+ - name : Build ShadowJars
40+ run : ./gradlew clean build shadowJar
41+
42+ - name : Get Gradle Version
43+ id : gradle_version
44+ run : echo "GRADLE_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')" >> $GITHUB_ENV
45+
46+ - name : Get Commit Hash
47+ id : commit_hash
48+ run : echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
49+
50+ - name : Publish to Modrinth
51+ run : ./gradlew modrinth && ./gradlew modrinthSyncBody
52+ env :
53+ COMMIT_HASH : ${{ env.COMMIT_HASH }}
54+ MODRINTH_TOKEN : ${{ secrets.MODRINTH_TOKEN }}
55+ - name : Create Release
56+ id : create_release
57+ uses : actions/create-release@v1
58+ with :
59+ tag_name : v${{ env.GRADLE_VERSION }}-dev.${{ env.COMMIT_HASH }}
60+ release_name : v${{ env.GRADLE_VERSION }}-dev.${{ env.COMMIT_HASH }}
61+ draft : false
62+ prerelease : true
63+ commitish : develop
64+ body : |
65+ This release contains dev builds for all Gradle modules.
66+ env :
67+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
68+
69+ - name : Upload ShadowJars to Release
70+ run : |
71+ # Find JAR files in any submodule's build/libs directory
72+ for jar in $(find . -type f -name "*.jar" -path "*/build/libs/*.jar" -not -path "./build/libs/*"); do
73+ # Check if the filename contains a version number (e.g., a dash followed by numbers)
74+ if [[ $(basename "$jar") =~ -[0-9]+\.[0-9]+ ]]; then
75+ echo "Skipping $jar due to version number"
76+ else
77+ echo "Uploading $jar"
78+ gh release upload v${{ env.GRADLE_VERSION }}-dev.${{ env.COMMIT_HASH }} "$jar"
79+ fi
80+ done
81+ env :
82+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments