Skip to content

Commit ca22a73

Browse files
Mod publishing on release creation (#74)
Co-authored-by: Potatoboy9999 <[email protected]>
1 parent d96cfee commit ca22a73

File tree

3 files changed

+64
-4
lines changed

3 files changed

+64
-4
lines changed

.github/workflows/publish.yml

+6-3
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,22 @@ jobs:
1515
- uses: actions/checkout@v3
1616
- run: chmod +x ./gradlew
1717

18-
- name: Build Artifacts
18+
- name: Build and Publish Artifacts
1919
uses: gradle/gradle-build-action@v2
2020
with:
21-
arguments: build checkLicenses publish --stacktrace
21+
arguments: build checkLicenses publish curseforge modrinth --stacktrace
2222
gradle-home-cache-cleanup: true
2323

2424
env:
2525
MAVEN_URL: ${{ secrets.MAVEN_URL }}
2626
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
2727
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
28+
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
29+
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
30+
CHANGELOG: ${{ github.event.release.body }}
2831

2932
- name: Upload artifacts to GitHub
3033
uses: AButler/[email protected]
3134
with:
3235
files: 'build/libs/*.jar'
33-
repo-token: ${{ secrets.GITHUB_TOKEN }}
36+
repo-token: ${{ secrets.GITHUB_TOKEN }}

build.gradle.kts

+56-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import com.matthewprenger.cursegradle.CurseArtifact
2+
import com.matthewprenger.cursegradle.CurseProject
3+
import com.matthewprenger.cursegradle.CurseRelation
14
import org.jetbrains.dokka.base.DokkaBase
25
import org.jetbrains.dokka.base.DokkaBaseConfiguration
36
import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask
@@ -19,6 +22,8 @@ plugins {
1922
alias(libs.plugins.git.hooks)
2023
alias(libs.plugins.dokka)
2124
alias(libs.plugins.binary.compatibility)
25+
alias(libs.plugins.minotaur)
26+
alias(libs.plugins.cursegradle)
2227
`maven-publish`
2328
}
2429

@@ -31,7 +36,7 @@ buildscript {
3136
group = "org.quiltmc"
3237
val rootVersion = project.version
3338
val flkVersion: String by project
34-
version = project.version.toString() + "+kt." + project.libs.versions.kotlin.orNull + "+flk." + flkVersion
39+
version = "${project.version}+kt.${project.libs.versions.kotlin.orNull}+flk.$flkVersion"
3540
val projectVersion = project.version as String + if (System.getenv("SNAPSHOTS_URL") != null && System.getenv("MAVEN_URL") == null) "-SNAPSHOT" else ""
3641

3742
val javaVersion = 17 // The current version of Java used by Minecraft
@@ -270,3 +275,53 @@ gitHooks {
270275
apiValidation {
271276
ignoredProjects.addAll(listOf("quilt-kotlin-libraries", "core"))
272277
}
278+
279+
curseforge {
280+
System.getenv("CURSEFORGE_TOKEN")?.let { apiKey = it }
281+
282+
project(closureOf<CurseProject> {
283+
id = "720410"
284+
releaseType = "release"
285+
addGameVersion(libs.versions.minecraft.get())
286+
addGameVersion("Quilt")
287+
288+
changelog = System.getenv("CHANGELOG") ?: "No changelog provided."
289+
changelogType = "markdown"
290+
291+
mainArtifact(tasks.remapJar.get(), closureOf<CurseArtifact> {
292+
displayName = "QKL $rootVersion + FLK $flkVersion + Kotlin ${project.libs.versions.kotlin.orNull}"
293+
})
294+
addArtifact(project(":core").tasks.remapJar.get())
295+
296+
relations(closureOf<CurseRelation> {
297+
requiredDependency("qsl")
298+
embeddedLibrary("fabric-language-kotlin")
299+
})
300+
})
301+
302+
curseGradleOptions.forgeGradleIntegration = false
303+
}
304+
305+
tasks.curseforge.get().dependsOn(tasks.remapJar)
306+
tasks.curseforge.get().dependsOn(project(":core").tasks.remapJar)
307+
308+
modrinth {
309+
token.set(System.getenv("MODRINTH_TOKEN"))
310+
311+
projectId.set("qkl")
312+
versionName.set("QKL $rootVersion + FLK $flkVersion + Kotlin ${project.libs.versions.kotlin.orNull}")
313+
versionType.set("release")
314+
315+
changelog.set(System.getenv("CHANGELOG") ?: "No changelog provided.")
316+
317+
file.set(tasks.remapJar.get().archiveFile)
318+
additionalFiles.add(project(":core").tasks.remapJar.get().archiveFile)
319+
320+
dependencies {
321+
required.project("qsl")
322+
embedded.project("fabric-language-kotlin")
323+
}
324+
}
325+
326+
tasks.modrinth.get().dependsOn(tasks.remapJar)
327+
tasks.modrinth.get().dependsOn(project(":core").tasks.remapJar)

gradle/libs.versions.toml

+2
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@ licenser = { id = "org.quiltmc.gradle.licenser", version = "2.0.1" }
3636
quilt_loom = { id = "org.quiltmc.loom", version = "1.+" }
3737
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "serialization_plugin" }
3838
binary_compatibility = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary_compat_plugin" }
39+
minotaur = { id = "com.modrinth.minotaur", version = "2.8.1" }
40+
cursegradle = { id = "com.matthewprenger.cursegradle", version = "1.4.0" }

0 commit comments

Comments
 (0)