1
0
forked from Clones/Controlify

🐘 Migrate to modmuss50 mod publish plugin

This commit is contained in:
isXander
2023-07-21 20:09:30 +01:00
parent 9cb95b0a94
commit 9be29f44cd
2 changed files with 51 additions and 83 deletions

View File

@ -1,14 +1,10 @@
import com.github.breadmoirai.githubreleaseplugin.GithubReleaseTask
plugins { plugins {
java java
alias(libs.plugins.loom) alias(libs.plugins.loom)
alias(libs.plugins.loom.quiltflower) alias(libs.plugins.loom.quiltflower)
alias(libs.plugins.minotaur) alias(libs.plugins.mod.publish.plugin)
alias(libs.plugins.cursegradle)
alias(libs.plugins.github.release)
alias(libs.plugins.machete) alias(libs.plugins.machete)
alias(libs.plugins.grgit) alias(libs.plugins.grgit)
alias(libs.plugins.blossom) alias(libs.plugins.blossom)
@ -17,7 +13,9 @@ plugins {
group = "dev.isxander" group = "dev.isxander"
version = "1.4.4+1.20" version = "1.4.4+1.20"
val isAlpha = "alpha" in version.toString()
val isBeta = "beta" in version.toString() val isBeta = "beta" in version.toString()
if (isAlpha) println("Alpha version detected.")
if (isBeta) println("Beta version detected.") if (isBeta) println("Beta version detected.")
repositories { repositories {
@ -161,89 +159,63 @@ tasks {
register("releaseMod") { register("releaseMod") {
group = "mod" group = "mod"
dependsOn("modrinth") dependsOn("publishMods")
dependsOn("modrinthSyncBody")
dependsOn("curseforge")
dependsOn("publish") dependsOn("publish")
dependsOn("githubRelease")
}
named("modrinth") {
dependsOn("optimizeOutputsOfRemapJar")
} }
} }
val changelogText = file("changelogs/${project.version}.md").takeIf { it.exists() }?.readText() ?: "No changelog provided." publishMods {
file.set(tasks.remapJar.get().archiveFile)
changelog.set(
file("changelogs/${project.version}.md")
.takeIf { it.exists() }
?.readText()
?: "No changelog provided."
)
type.set(when {
isAlpha -> ALPHA
isBeta -> BETA
else -> STABLE
})
modLoaders.add("fabric")
val modrinthId: String by project // modrinth and curseforge use different formats for snapshots. this can be expressed globally
if (modrinthId.isNotEmpty()) { val stableMCVersions = listOf("1.20", "1.20.1")
modrinth {
token.set(findProperty("modrinth.token")?.toString())
projectId.set(modrinthId)
versionNumber.set("${project.version}")
versionType.set(if (isBeta) "beta" else "release")
uploadFile.set(tasks["remapJar"])
gameVersions.set(listOf("1.20", "1.20.1"))
loaders.set(listOf("fabric", "quilt"))
changelog.set(changelogText)
syncBodyFrom.set(file(".github/README.md").readText())
dependencies { val modrinthId: String by project
required.project("yacl") if (modrinthId.isNotBlank() && hasProperty("modrinth.token")) {
required.project("fabric-api") modrinth {
optional.project("modmenu") projectId.set(modrinthId)
accessToken.set(findProperty("modrinth.token")?.toString())
minecraftVersions.addAll(stableMCVersions)
requires { projectId.set("fabric-api") }
requires { projectId.set("yacl") }
optional { projectId.set("modmenu") }
} }
} }
}
val curseforgeId: String by project val curseforgeId: String by project
if (hasProperty("curseforge.token") && curseforgeId.isNotEmpty()) { if (curseforgeId.isNotBlank() && hasProperty("curseforge.token")) {
curseforge { curseforge {
apiKey = findProperty("curseforge.token") projectId.set(curseforgeId)
project(closureOf<me.hypherionmc.cursegradle.CurseProject> { accessToken.set(findProperty("curseforge.token")?.toString())
mainArtifact(tasks["remapJar"], closureOf<me.hypherionmc.cursegradle.CurseArtifact> { minecraftVersions.addAll(stableMCVersions)
displayName = "${project.version}"
})
id = curseforgeId requires { slug.set("fabric-api") }
releaseType = if (isBeta) "beta" else "release" requires { slug.set("yacl") }
addGameVersion("1.20") optional { slug.set("modmenu") }
addGameVersion("1.20.1") }
addGameVersion("Fabric")
addGameVersion("Java 17")
changelog = changelogText
changelogType = "markdown"
relations(closureOf<me.hypherionmc.cursegradle.CurseRelation> {
requiredDependency("fabric-api")
requiredDependency("yacl")
optionalDependency("modmenu")
})
})
options(closureOf<me.hypherionmc.cursegradle.Options> {
forgeGradleIntegration = false
fabricIntegration = false
})
} }
}
githubRelease {
token(findProperty("github.token")?.toString())
val githubProject: String by project val githubProject: String by project
val split = githubProject.split("/") if (githubProject.isNotBlank() && hasProperty("github.token")) {
owner(split[0]) github {
repo(split[1]) repository.set(githubProject)
tagName("${project.version}") accessToken.set(findProperty("github.token")?.toString())
targetCommitish(grgit.branch.current().name) commitish.set(grgit.branch.current().name)
body(changelogText) }
releaseAssets(tasks["remapJar"].outputs.files) }
}
tasks.getByName<GithubReleaseTask>("githubRelease") {
dependsOn("optimizeOutputsOfRemapJar")
} }
publishing { publishing {

View File

@ -1,17 +1,15 @@
[versions] [versions]
loom = "1.2.+" loom = "1.2.+"
loom_quiltflower = "1.8.+" loom_quiltflower = "1.8.+"
minotaur = "2.7.+" mod_publish_plugin = "0.1.+"
cursegradle = "2.+"
github_release = "2.+"
machete = "2.+" machete = "2.+"
grgit = "5.0.+" grgit = "5.0.+"
blossom = "1.3.+" blossom = "1.3.+"
minecraft = "1.20.1" minecraft = "1.20.1"
quilt_mappings = "13" quilt_mappings = "20"
fabric_loader = "0.14.21" fabric_loader = "0.14.21"
fabric_api = "0.85.0+1.20.1" fabric_api = "0.86.0+1.20.1"
mixin_extras = "0.2.0-beta.8" mixin_extras = "0.2.0-beta.8"
yet_another_config_lib = "3.0.3+1.20" yet_another_config_lib = "3.0.3+1.20"
mod_menu = "7.0.0" mod_menu = "7.0.0"
@ -43,9 +41,7 @@ test_fabric_loader = { module = "net.fabricmc:fabric-loader-junit", version.ref
loom = { id = "fabric-loom", version.ref = "loom" } loom = { id = "fabric-loom", version.ref = "loom" }
loom_quiltflower = { id = "io.github.juuxel.loom-quiltflower", version.ref = "loom_quiltflower" } loom_quiltflower = { id = "io.github.juuxel.loom-quiltflower", version.ref = "loom_quiltflower" }
minotaur = { id = "com.modrinth.minotaur", version.ref = "minotaur" } mod_publish_plugin = { id = "me.modmuss50.mod-publish-plugin", version.ref = "mod_publish_plugin" }
cursegradle = { id = "me.hypherionmc.cursegradle", version.ref = "cursegradle" }
github_release = { id = "com.github.breadmoirai.github-release", version.ref = "github_release" }
machete = { id = "io.github.p03w.machete", version.ref = "machete" } machete = { id = "io.github.p03w.machete", version.ref = "machete" }
grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }
blossom = { id = "net.kyori.blossom", version.ref = "blossom" } blossom = { id = "net.kyori.blossom", version.ref = "blossom" }