1+ name : Publish NetWatchZ Plugin
2+
3+ on :
4+ release :
5+ types : [published]
6+
7+ jobs :
8+ build :
9+ runs-on : ubuntu-latest
10+ outputs :
11+ version : ${{ steps.get_version.outputs.version }}
12+ steps :
13+ - name : Checkout repository
14+ uses : actions/checkout@v4
15+
16+ - name : Set up JDK
17+ uses : actions/setup-java@v4
18+ with :
19+ distribution : ' temurin'
20+ java-version : ' 21'
21+ cache : ' maven'
22+
23+ - name : Cache Maven repository
24+ uses : actions/cache@v3
25+ with :
26+ path : ~/.m2
27+ key : ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
28+ restore-keys : |
29+ ${{ runner.os }}-maven-
30+
31+ - name : Get release version
32+ id : get_version
33+ run : echo "version=${{ github.event.release.tag_name }}" >> $GITHUB_ENV
34+
35+ - name : Set version from release tag
36+ run : mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
37+
38+ - name : Build all modules
39+ run : mvn -B clean package
40+
41+ - name : Upload Paper JAR
42+ uses : actions/upload-artifact@v4
43+ with :
44+ name : netwatchz-paper-jar
45+ path : netwatchz-paper/target/netwatchz-paper-${{ github.event.release.tag_name }}.jar
46+
47+ - name : Upload Spigot JAR
48+ uses : actions/upload-artifact@v4
49+ with :
50+ name : netwatchz-spigot-jar
51+ path : netwatchz-spigot/target/netwatchz-spigot-${{ github.event.release.tag_name }}.jar
52+
53+ upload_release_assets :
54+ needs : build
55+ runs-on : ubuntu-latest
56+ steps :
57+ - name : Download Paper JAR
58+ uses : actions/download-artifact@v4
59+ with :
60+ name : netwatchz-paper-jar
61+ path : netwatchz-paper/target/
62+
63+ - name : Download Spigot JAR
64+ uses : actions/download-artifact@v4
65+ with :
66+ name : netwatchz-spigot-jar
67+ path : netwatchz-spigot/target/
68+
69+ - name : Upload both JARs to GitHub Release
70+ uses : softprops/action-gh-release@v2
71+ with :
72+ files : |
73+ netwatchz-paper/target/netwatchz-paper-${{ github.event.release.tag_name }}.jar
74+ netwatchz-spigot/target/netwatchz-spigot-${{ github.event.release.tag_name }}.jar
75+ body : ${{ github.event.release.body }}
76+
77+ publish_modrinth_paper :
78+ needs : build
79+ runs-on : ubuntu-latest
80+ steps :
81+ - name : Download Paper JAR
82+ uses : actions/download-artifact@v4
83+ with :
84+ name : netwatchz-paper-jar
85+ path : netwatchz-paper/target/
86+
87+ - name : Publish Paper to Modrinth
88+ uses : cloudnode-pro/modrinth-publish@v2
89+ with :
90+ token : ${{ secrets.MODRINTH_TOKEN }}
91+ project : ' pVji8xJW'
92+ version : ${{ github.event.release.tag_name }}
93+ name : ' Release ${{ github.event.release.tag_name }} Paper'
94+ changelog : ${{ github.event.release.body }}
95+ files : ' ["netwatchz-paper/target/netwatchz-paper-${{ github.event.release.tag_name }}.jar"]'
96+ loaders : paper
97+ game-versions : |-
98+ 1.17.x
99+ 1.18.x
100+ 1.19.x
101+ 1.20.x
102+ 1.21.x
103+ status : ' listed'
104+ channel : ' release'
105+
106+ publish_modrinth_spigot :
107+ needs : build
108+ runs-on : ubuntu-latest
109+ steps :
110+ - name : Download Spigot JAR
111+ uses : actions/download-artifact@v4
112+ with :
113+ name : netwatchz-spigot-jar
114+ path : netwatchz-spigot/target/
115+
116+ - name : Publish Spigot to Modrinth
117+ uses : cloudnode-pro/modrinth-publish@v2
118+ with :
119+ token : ${{ secrets.MODRINTH_TOKEN }}
120+ project : ' pVji8xJW'
121+ version : ${{ github.event.release.tag_name }}
122+ name : ' Release ${{ github.event.release.tag_name }} Spigot'
123+ changelog : ${{ github.event.release.body }}
124+ files : ' ["netwatchz-spigot/target/netwatchz-spigot-${{ github.event.release.tag_name }}.jar"]'
125+ loaders : spigot
126+ game-versions : |-
127+ 1.17.x
128+ 1.18.x
129+ 1.19.x
130+ 1.20.x
131+ 1.21.x
132+ status : ' listed'
133+ channel : ' release'
0 commit comments