Skip to content

Commit c0e6491

Browse files
authored
Ci improvements (#4)
* Combine publish into main CI * Add auto-publishing to PaperMC Hangar
1 parent d0324bf commit c0e6491

3 files changed

Lines changed: 62 additions & 59 deletions

File tree

.github/workflows/gradle.yml

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,53 @@
1-
name: Java CI
1+
name: Gradle CI
22

33
on:
44
workflow_dispatch:
55
push:
66
pull_request:
7+
release:
8+
types: [created, prereleased]
79

810
jobs:
9-
# Build Movecraft-CoreProtect
1011
build:
1112
runs-on: ubuntu-latest
1213
permissions:
1314
contents: read
15+
packages: write
1416

1517
steps:
16-
- name: Checkout Movecraft-CoreProtect
17-
uses: actions/checkout@v4
18-
- name: Set up JDK 21
19-
uses: actions/setup-java@v4
20-
with:
21-
distribution: 'temurin'
22-
java-version: '21'
23-
- name: Setup Gradle
24-
uses: gradle/actions/setup-gradle@v3
25-
with:
26-
build-scan-publish: true
27-
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
28-
build-scan-terms-of-use-agree: "yes"
18+
- name: Checkout Movecraft-CoreProtect
19+
uses: actions/checkout@v4
20+
- name: Set up JDK 21
21+
uses: actions/setup-java@v4
22+
with:
23+
distribution: 'temurin'
24+
java-version: '21'
25+
- name: Setup Gradle
26+
uses: gradle/actions/setup-gradle@v3
27+
with:
28+
build-scan-publish: true
29+
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
30+
build-scan-terms-of-use-agree: "yes"
2931

30-
- name: Build with Gradle
31-
run: ./gradlew clean build --parallel
32+
- name: Build with Gradle
33+
run: ./gradlew clean build --parallel
3234

33-
- name: Stage jar
34-
run: mkdir staging && cp build/libs/Movecraft-CoreProtect.jar staging && mv staging/Movecraft-CoreProtect.jar staging/Movecraft-CoreProtect_$GITHUB_SHA.jar
35-
- name: Upload jar
36-
uses: actions/upload-artifact@v4
37-
with:
38-
name: Movecraft-CoreProtect_Dev-Build
39-
path: staging/Movecraft-CoreProtect_*.jar
35+
- name: Publish to GitHub Packages
36+
run: ./gradlew publish --parallel
37+
if: ${{ github.event_name == 'release' }}
38+
env:
39+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40+
41+
- name: Publish to PaperMC Hangar
42+
run: ./gradlew publishPluginPublicationToHangar --parallel
43+
if: ${{ github.event_name == 'release' }}
44+
env:
45+
HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }}
46+
47+
- name: Stage jar
48+
run: mkdir staging && cp build/libs/Movecraft-CoreProtect.jar staging && mv staging/Movecraft-CoreProtect.jar staging/Movecraft-CoreProtect_$GITHUB_SHA.jar
49+
- name: Upload jar
50+
uses: actions/upload-artifact@v4
51+
with:
52+
name: Movecraft-CoreProtect_Dev-Build
53+
path: staging/Movecraft-CoreProtect_*.jar

.github/workflows/publish.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

build.gradle.kts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ plugins {
22
`java-library`
33
`maven-publish`
44
id("io.github.0ffz.github-packages") version "1.2.1"
5+
id("io.papermc.hangar-publish-plugin") version "0.1.2"
56
}
67

78
repositories {
@@ -29,7 +30,6 @@ tasks.jar {
2930
archiveBaseName.set("Movecraft-CoreProtect")
3031
archiveClassifier.set("")
3132
archiveVersion.set("")
32-
3333
}
3434

3535
tasks.processResources {
@@ -60,3 +60,26 @@ publishing {
6060
}
6161
}
6262
}
63+
64+
hangarPublish {
65+
publications.register("plugin") {
66+
version.set(project.version as String)
67+
channel.set("Release")
68+
id.set("Airship-Pirates/Movecraft-CoreProtect")
69+
apiKey.set(System.getenv("HANGAR_API_TOKEN"))
70+
platforms {
71+
register(io.papermc.hangarpublishplugin.model.Platforms.PAPER) {
72+
jar.set(tasks.jar.flatMap { it.archiveFile })
73+
platformVersions.set(listOf("1.18.2-1.21"))
74+
dependencies {
75+
hangar("Movecraft") {
76+
required.set(true)
77+
}
78+
hangar("CoreProtect") {
79+
required.set(true)
80+
}
81+
}
82+
}
83+
}
84+
}
85+
}

0 commit comments

Comments
 (0)