1- name : Release
2- concurrency : ci-${{ github.ref }}
3- on :
4- workflow_dispatch :
5- jobs :
6- build :
7- runs-on : ubuntu-22.04
8- steps :
9- - name : Setup Java
10- run : |
11- echo "JAVA_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV"
12- - uses : actions/checkout@v4
13- with :
14- fetch-depth : 0
15- - uses : fregante/setup-git-user@v2
16- - uses : actions/cache@v3
17- with :
18- path : |
19- **/.gradle/loom-cache
20- key : ${{ runner.os }}-gradle-${{ hashFiles('**/libs.versions.*', '**/*.gradle*', '**/gradle-wrapper.properties') }}
21- restore-keys : ${{ runner.os }}-gradle-
22- - uses : gradle/gradle-build-action@v2
23- name : Setup Gradle
24- with :
25- gradle-home-cache-cleanup : true
26- - name : Tag Release
27- run : |
28- ./gradlew tagRelease
29- - name : Build
30- run : |
31- ./gradlew checkLicenses build prepareJavadoc
32- -
uses :
andreiio/[email protected] 33- with :
34- args : copy build/prepareJavadoc r2:javadoc-lukebemish-dev
35- env :
36- RCLONE_CONFIG_R2_TYPE : s3
37- RCLONE_CONFIG_R2_ACCESS_KEY_ID : ${{ secrets.JAVADOC_ACCESS_KEY_ID }}
38- RCLONE_CONFIG_R2_SECRET_ACCESS_KEY : ${{ secrets.JAVADOC_SECRET_ACCESS_KEY }}
39- RCLONE_CONFIG_R2_PROVIDER : Cloudflare
40- RCLONE_CONFIG_R2_REGION : auto
41- RCLONE_CONFIG_R2_ENDPOINT : ${{ secrets.JAVADOC_ENDPOINT }}
42- RCLONE_CONFIG_R2_ACL : private
43- - name : Publish
44- run : |
45- ./gradlew publish curseforge modrinth
46- env :
47- MAVEN_USER : github
48- MAVEN_PASSWORD : ${{ secrets.RELEASE_MAVEN_PASSWORD }}
49- CURSEFORGE_KEY : ${{ secrets.CURSEFORGE_KEY }}
50- MODRINTH_KEY : ${{ secrets.MODRINTH_KEY }}
51- MAVEN_URL : https://maven.lukebemish.dev/releases/
52- - run : |
53- git push
54- git push --tags
1+ {
2+ " jobs " : {
3+ " build " : {
4+ " runs-on " : " ubuntu-22.04" ,
5+ " permissions " : {
6+ " contents " : " write"
7+ },
8+ " steps " : [
9+ {
10+ " name " : " Setup Java" ,
11+ " run " : " echo \" JAVA_HOME=$JAVA_HOME_17_X64\" >> \" $GITHUB_ENV\" "
12+ },
13+ {
14+ " with " : {
15+ " fetch-depth " : " 0"
16+ },
17+ " name " : " Checkout" ,
18+ " uses " : " actions/checkout@v4"
19+ },
20+ {
21+ " with " : {
22+ " path " : " **/.gradle/loom-cache" ,
23+ " key " : " ${{ runner.os }}-gradle-${{ hashFiles('**/libs.versions.*', '**/*.gradle*', '**/gradle-wrapper.properties') }}" ,
24+ " restore-keys " : " ${{ runner.os }}-gradle-"
25+ },
26+ " name " : " Cache" ,
27+ " uses " : " actions/cache@v3"
28+ },
29+ {
30+ " with " : {
31+ " gradle-home-cache-cleanup " : true
32+ },
33+ " name " : " Setup Gradle" ,
34+ " uses " : " gradle/gradle-build-action@v2"
35+ },
36+ {
37+ " name " : " tagRelease" ,
38+ " run " : " ./gradlew " ,
39+ " id " : " tagrelease" ,
40+ " env " : {
41+ " RELEASE_MAVEN_PASSWORD " : " ${{ secrets.RELEASE_MAVEN_PASSWORD }}" ,
42+ " RELEASE_MAVEN_USER " : " github" ,
43+ " RELEASE_MAVEN_URL " : " https://maven.lukebemish.dev/releases/" ,
44+ " CURSEFORGE_KEY " : " ${{ secrets.CURSEFORGE_KEY }}" ,
45+ " MODRINTH_KEY " : " ${{ secrets.MODRINTH_KEY }}"
46+ }
47+ },
48+ {
49+ " name " : " Build" ,
50+ " run " : " ./gradlew checkLicenses build prepareJavadoc" ,
51+ " id " : " build" ,
52+ " env " : {
53+ " RELEASE_MAVEN_PASSWORD " : " ${{ secrets.RELEASE_MAVEN_PASSWORD }}" ,
54+ " RELEASE_MAVEN_USER " : " github" ,
55+ " RELEASE_MAVEN_URL " : " https://maven.lukebemish.dev/releases/" ,
56+ " CURSEFORGE_KEY " : " ${{ secrets.CURSEFORGE_KEY }}" ,
57+ " MODRINTH_KEY " : " ${{ secrets.MODRINTH_KEY }}"
58+ }
59+ },
60+ {
61+ " with " : {
62+ " args " : " copy build/prepareJavadoc r2:javadoc-lukebemish-dev"
63+ },
64+ " name " : " Upload Javadoc" ,
65+ " uses " :
" andreiio/[email protected] " , 66+ " env " : {
67+ " RCLONE_CONFIG_R2_TYPE " : " s3" ,
68+ " RCLONE_CONFIG_R2_ACCESS_KEY_ID " : " ${{ secrets.JAVADOC_ACCESS_KEY_ID }}" ,
69+ " RCLONE_CONFIG_R2_SECRET_ACCESS_KEY " : " ${{ secrets.JAVADOC_SECRET_ACCESS_KEY }}" ,
70+ " RCLONE_CONFIG_R2_ENDPOINT " : " ${{ secrets.JAVADOC_ENDPOINT }}" ,
71+ " RCLONE_CONFIG_R2_PROVIDER " : " Cloudflare" ,
72+ " RCLONE_CONFIG_R2_REGION " : " auto" ,
73+ " RCLONE_CONFIG_R2_ACL " : " private"
74+ }
75+ },
76+ {
77+ " name " : " Publish" ,
78+ " run " : " ./gradlew publish modrinth curseforge" ,
79+ " id " : " publish" ,
80+ " env " : {
81+ " RELEASE_MAVEN_PASSWORD " : " ${{ secrets.RELEASE_MAVEN_PASSWORD }}" ,
82+ " RELEASE_MAVEN_USER " : " github" ,
83+ " RELEASE_MAVEN_URL " : " https://maven.lukebemish.dev/releases/" ,
84+ " CURSEFORGE_KEY " : " ${{ secrets.CURSEFORGE_KEY }}" ,
85+ " MODRINTH_KEY " : " ${{ secrets.MODRINTH_KEY }}"
86+ }
87+ },
88+ {
89+ " run " : " git push && git push --tags"
90+ }
91+ ]
92+ }
93+ },
94+ " name " : " Release" ,
95+ " concurrency " : " ci-${{ github.ref }}" ,
96+ " on " : {
97+ " workflow_dispatch " : {
98+
99+ }
100+ }
101+ }
0 commit comments