diff --git a/build.gradle b/build.gradle index a36814b6..266f2f6d 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ plugins { id "maven-publish" id 'com.matthewprenger.cursegradle' version '1.4.0' apply false id 'com.palantir.git-version' version '1.0.0' + id 'org.ajoberstar.grgit' version '5.2.0' id 'se.bjurr.gitchangelog.git-changelog-gradle-plugin' version '1.79.0' id "com.modrinth.minotaur" version "2.+" apply false id("com.diffplug.spotless") version "6.18.0" apply false @@ -35,7 +36,7 @@ allprojects { plusIndex = details.lastTag.length() } def baseVersion = details.lastTag.substring(0, plusIndex) - def dirtyMarker = details.isCleanTag ? "" : ".dirty" + def dirtyMarker = grgit.status().clean ? "" : ".dirty" def commitHashMarker = details.commitDistance > 0 ? ("." + details.gitHash) : "" def preMarker = (details.commitDistance > 0 || !details.isCleanTag) ? ("-beta." + details.commitDistance) : "" def versionString = "${baseVersion}${preMarker}+mc${minecraft_version}${commitHashMarker}${dirtyMarker}" @@ -175,4 +176,44 @@ tasks.register('checkCleanTag') { throw new GradleException('Not a clean tree.') } } +} + +configure(subprojects.findAll {it.name == "forge" || it.name == "fabric"}) { + apply plugin: 'com.matthewprenger.cursegradle' + apply plugin: 'com.modrinth.minotaur' + + def isBeta = project.version.toString().contains("beta") + + curseforge { + if (System.getenv("CURSEFORGE_TOKEN") != null) { + apiKey = System.getenv("CURSEFORGE_TOKEN") + project { + id = "790626" + changelog = file('CHANGELOG.md') + changelogType = "markdown" + releaseType = isBeta ? "beta" : "release" + addGameVersion project.name + gameVersionStrings.addAll(supported_minecraft_versions.tokenize(",")) + mainArtifact remapJar + } + } + } + + modrinth { + token = System.getenv("MODRINTH_TOKEN") + projectId = "modernfix" // This can be the project ID or the slug. Either will work! + versionType = isBeta ? "beta" : "release" // This is the default -- can also be `beta` or `alpha` + uploadFile = remapJar + gameVersions = supported_minecraft_versions.tokenize(",") + loaders = [project.name] + changelog.set(provider { file("CHANGELOG.md").getText('UTF-8') }) + } + + tasks.curseforge.dependsOn(rootProject.generateChangelog) + tasks.modrinth.dependsOn(rootProject.generateChangelog) + + tasks.register('publishToModSites') { + publishToModSites.dependsOn(tasks.modrinth) + publishToModSites.dependsOn(tasks.curseforge) + } } \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 64ccca13..38437162 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -2,9 +2,6 @@ plugins { id "com.github.johnrengelman.shadow" version "7.1.2" } -apply plugin: 'com.matthewprenger.cursegradle' -apply plugin: 'com.modrinth.minotaur' - architectury { platformSetupLoomIde() fabric() @@ -95,37 +92,4 @@ publishing { repositories { // Add repositories to publish to here. } -} - -curseforge { - if (System.getenv("CURSEFORGE_TOKEN") != null) { - apiKey = System.getenv("CURSEFORGE_TOKEN") - project { - id = "790626" - changelog = file('../CHANGELOG.md') - changelogType = "markdown" - releaseType = "beta" - addGameVersion "Fabric" - addGameVersion minecraft_version - mainArtifact remapJar - } - } -} - -modrinth { - token = System.getenv("MODRINTH_TOKEN") - projectId = "modernfix" // This can be the project ID or the slug. Either will work! - versionType = "beta" // This is the default -- can also be `beta` or `alpha` - uploadFile = remapJar - gameVersions = [minecraft_version] - loaders = ["fabric"] - changelog.set(provider { file("../CHANGELOG.md").getText('UTF-8') }) -} - -tasks.curseforge.dependsOn(rootProject.generateChangelog) -tasks.modrinth.dependsOn(rootProject.generateChangelog) - -tasks.register('publishToModSites') { - publishToModSites.dependsOn(tasks.modrinth) - publishToModSites.dependsOn(tasks.curseforge) } \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle index 4c1502d2..14db4984 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -2,9 +2,6 @@ plugins { id "com.github.johnrengelman.shadow" version "7.1.2" } -apply plugin: 'com.matthewprenger.cursegradle' -apply plugin: 'com.modrinth.minotaur' - architectury { platformSetupLoomIde() forge() @@ -121,37 +118,4 @@ publishing { repositories { // Add repositories to publish to here. } -} - -curseforge { - if (System.getenv("CURSEFORGE_TOKEN") != null) { - apiKey = System.getenv("CURSEFORGE_TOKEN") - project { - id = "790626" - changelog = file('../CHANGELOG.md') - changelogType = "markdown" - releaseType = "release" - addGameVersion "Forge" - addGameVersion minecraft_version - mainArtifact remapJar - } - } -} - -modrinth { - token = System.getenv("MODRINTH_TOKEN") - projectId = "modernfix" // This can be the project ID or the slug. Either will work! - versionType = "release" // This is the default -- can also be `beta` or `alpha` - uploadFile = remapJar - gameVersions = [minecraft_version] - loaders = ["forge"] - changelog.set(provider { file("../CHANGELOG.md").getText('UTF-8') }) -} - -tasks.curseforge.dependsOn(rootProject.generateChangelog) -tasks.modrinth.dependsOn(rootProject.generateChangelog) - -tasks.register('publishToModSites') { - publishToModSites.dependsOn(tasks.modrinth) - publishToModSites.dependsOn(tasks.curseforge) } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 715c857e..b5e807ab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,6 +12,7 @@ jei_version=7.7.1.153 refined_storage_version=3807951 kubejs_version=1605.3.19-build.299 ctm_version=MC1.16.1-1.1.2.6 +supported_minecraft_versions=1.16.4,1.16.5 fabric_loader_version=0.14.18 fabric_api_version=0.42.0+1.16