3
0
Mirror von https://github.com/ViaVersion/ViaBackwards.git synchronisiert 2024-07-27 01:18:04 +02:00
ViaBackwards/universal/build.gradle.kts

120 Zeilen
4.4 KiB
Plaintext

2021-02-23 11:29:18 +01:00
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2023-08-10 16:26:51 +02:00
import io.papermc.hangarpublishplugin.model.Platforms
2021-02-23 11:29:18 +01:00
2021-05-29 09:32:55 +02:00
plugins {
id("com.github.johnrengelman.shadow")
2023-08-10 16:26:51 +02:00
id("io.papermc.hangar-publish-plugin") version "0.0.5"
id("com.modrinth.minotaur") version "2.+"
2021-05-29 09:32:55 +02:00
}
val platforms = setOf(
projects.viabackwardsBukkit,
projects.viabackwardsBungee,
projects.viabackwardsFabric,
projects.viabackwardsSponge,
projects.viabackwardsVelocity
).map { it.dependencyProject }
2021-02-18 14:34:33 +01:00
tasks {
2021-05-29 09:32:55 +02:00
shadowJar {
2021-02-18 14:34:33 +01:00
archiveClassifier.set("")
archiveFileName.set("ViaBackwards-${project.version}.jar")
destinationDirectory.set(rootProject.projectDir.resolve("build/libs"))
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
2021-05-29 09:32:55 +02:00
platforms.forEach { platform ->
val shadowJarTask = platform.tasks.getByName("shadowJar", ShadowJar::class)
2021-02-18 14:34:33 +01:00
dependsOn(shadowJarTask)
2021-05-29 09:32:55 +02:00
dependsOn(platform.tasks.withType<Jar>())
from(zipTree(shadowJarTask.archiveFile))
2021-02-18 14:34:33 +01:00
}
}
build {
2021-05-29 09:32:55 +02:00
dependsOn(shadowJar)
}
sourcesJar {
rootProject.subprojects.forEach { subproject ->
if (subproject == project) return@forEach
val platformSourcesJarTask = subproject.tasks.findByName("sourcesJar") as? Jar ?: return@forEach
dependsOn(platformSourcesJarTask)
from(zipTree(platformSourcesJarTask.archiveFile))
}
2021-02-23 11:29:18 +01:00
}
2021-02-18 14:34:33 +01:00
}
2021-05-29 09:32:55 +02:00
publishShadowJar()
2023-08-10 16:26:51 +02:00
val branch = rootProject.branchName()
val isMainBranch = branch == "master"
val ver = (project.version as String) + "+" + System.getenv("GITHUB_RUN_NUMBER")
val changelogContent = rootProject.lastCommitMessage()
modrinth {
2023-08-11 03:42:13 +02:00
// val snapshotVersion = rootProject.parseMinecraftSnapshotVersion(project.version as String)
2023-08-10 16:26:51 +02:00
val mcVersions: List<String> = (property("mcVersions") as String)
.split(",")
.map { it.trim() }
2023-08-11 03:42:13 +02:00
//.let { if (snapshotVersion != null) it + snapshotVersion else it } // We're usually too fast for modrinth
2023-08-10 16:26:51 +02:00
token.set(System.getenv("MODRINTH_TOKEN"))
projectId.set("viabackwards")
versionType.set(if (isMainBranch) "beta" else "alpha")
versionNumber.set(ver)
2023-08-11 03:42:13 +02:00
versionName.set(ver)
2023-08-10 16:26:51 +02:00
changelog.set(changelogContent)
uploadFile.set(tasks.shadowJar.flatMap { it.archiveFile })
gameVersions.set(mcVersions)
loaders.add("fabric")
2023-08-11 03:42:13 +02:00
loaders.add("paper")
loaders.add("folia")
loaders.add("velocity")
loaders.add("bungeecord")
loaders.add("sponge")
2023-08-10 16:26:51 +02:00
autoAddDependsOn.set(false)
detectLoaders.set(false)
dependencies {
2023-08-11 03:42:13 +02:00
optional.project("viaversion")
2023-08-10 16:26:51 +02:00
optional.project("viafabric")
optional.project("viafabricplus")
}
}
if (isMainBranch) { // Don't spam releases until Hangar has per channel notifications
hangarPublish {
publications.register("plugin") {
version.set(ver)
namespace("ViaVersion", "ViaBackwards")
channel.set(if (isMainBranch) "Snapshot" else "Alpha")
changelog.set(changelogContent)
apiKey.set(System.getenv("HANGAR_TOKEN"))
platforms {
register(Platforms.PAPER) {
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
platformVersions.set(listOf(property("mcVersionRange") as String))
dependencies {
hangar("ViaVersion", "ViaVersion") {
required.set(true)
}
}
}
register(Platforms.VELOCITY) {
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
platformVersions.set(listOf(property("velocityVersion") as String))
dependencies {
hangar("ViaVersion", "ViaVersion") {
required.set(true)
}
}
}
register(Platforms.WATERFALL) {
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
platformVersions.set(listOf(property("waterfallVersion") as String))
dependencies {
hangar("ViaVersion", "ViaVersion") {
required.set(true)
}
}
}
}
}
}
}