Add rudimentary support for modrinth publishing (#263)

(cherry picked from commit 4da029729c)
Signed-off-by: Max <maxh2709@gmail.com>
This commit is contained in:
Max
2022-05-22 18:01:35 +02:00
parent e5121992ca
commit da469cc100
6 changed files with 59 additions and 18 deletions

View File

@@ -71,5 +71,6 @@ jobs:
# GIT_PREVIOUS_COMMIT: ${{ github.event.before }}
MAVEN_PASS: ${{ secrets.MAVEN_PASS }}
CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }}
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
with:
arguments: publish curseforge --stacktrace --no-daemon
arguments: publish curseforge modrinth --stacktrace --no-daemon

View File

@@ -1,3 +1,5 @@
import java.text.SimpleDateFormat
buildscript {
configurations.classpath {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
@@ -6,9 +8,10 @@ buildscript {
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "0.10.0-SNAPSHOT" apply false
id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false
id "org.cadixdev.licenser" version "0.6.1"
id "com.matthewprenger.cursegradle" version "1.4.0" apply false
id "com.modrinth.minotaur" version "2.2.0" apply false
id "maven-publish"
}
@@ -37,7 +40,7 @@ allprojects {
apply plugin: "java"
apply plugin: "architectury-plugin"
apply plugin: "org.cadixdev.licenser"
ext {
isSnapshot = System.getenv("PR_NUM") != null
}
@@ -81,7 +84,7 @@ allprojects {
ext {
releaseChangelog = {
def dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm")
def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"))
def branch
if (System.env.BRANCH_NAME) {
@@ -115,5 +118,3 @@ allprojects {
task licenseFormatAll
subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }
task curseforgePublish

View File

@@ -1,6 +1,7 @@
plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
id "com.matthewprenger.cursegradle"
id "com.modrinth.minotaur"
}
loom {
@@ -98,11 +99,12 @@ publishing {
}
curseforge {
if (project.hasProperty("CURSE_API_KEY") || System.getenv("CURSE_API_KEY") != null) {
apiKey = project.hasProperty("CURSE_API_KEY") ? project.property("CURSE_API_KEY") : System.getenv("CURSE_API_KEY")
var CURSE_API_KEY = project.findProperty("CURSE_API_KEY") ?: System.getenv("CURSE_API_KEY")
if (CURSE_API_KEY != null) {
apiKey = CURSE_API_KEY
project {
id = "419699"
releaseType = "$rootProject.cf_type"
id = rootProject.curseforge_id
releaseType = "$rootProject.artifact_type"
changelogType = "html"
changelog = releaseChangelog()
addGameVersion "1.17"
@@ -127,4 +129,21 @@ curseforge {
}
}
rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")
modrinth {
var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN")
if (MODRINTH_TOKEN != null) {
token = MODRINTH_TOKEN
projectId = rootProject.modrinth_id
versionType = "$rootProject.artifact_type"
versionNumber = "$project.version+$project.name"
versionName = "[Fabric $rootProject.supported_version] v$project.version"
changelog = releaseChangelog()
uploadFile = remapJar
gameVersions = ["1.17.1"]
loaders = ["fabric"]
dependencies {
// TODO: move to slugs if that functionality becomes available in minotaur
required.project("P7dR8mSH") // Fabric API
}
}
}

View File

@@ -1,6 +1,7 @@
plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
id "com.matthewprenger.cursegradle"
id "com.modrinth.minotaur"
}
loom {
@@ -96,11 +97,12 @@ publishing {
}
curseforge {
if (project.hasProperty("CURSE_API_KEY") || System.getenv("CURSE_API_KEY") != null) {
apiKey = project.hasProperty("CURSE_API_KEY") ? project.property("CURSE_API_KEY") : System.getenv("CURSE_API_KEY")
var CURSE_API_KEY = project.findProperty("CURSE_API_KEY") ?: System.getenv("CURSE_API_KEY")
if (CURSE_API_KEY != null) {
apiKey = CURSE_API_KEY
project {
id = "419699"
releaseType = "$rootProject.cf_type"
id = rootProject.curseforge_id
releaseType = "$rootProject.artifact_type"
changelogType = "html"
changelog = releaseChangelog()
addGameVersion "1.17"
@@ -121,4 +123,19 @@ curseforge {
}
}
rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")
modrinth {
var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN")
if (MODRINTH_TOKEN != null) {
token = MODRINTH_TOKEN
projectId = rootProject.modrinth_id
versionType = "$rootProject.artifact_type"
versionNumber = "$project.version+$project.name"
versionName = "[Forge $rootProject.supported_version] v$project.version"
changelog = releaseChangelog()
uploadFile = remapJar
gameVersions = ["1.17.1"]
loaders = ["forge"]
dependencies {
}
}
}

View File

@@ -5,7 +5,7 @@ minecraft_version=1.17.1
supported_version=1.17.1
crane_version=1.17.1+build.1
cf_type=release
artifact_type=release
archives_base_name=architectury
archives_base_name_snapshot=architectury-snapshot
@@ -17,3 +17,6 @@ fabric_api_version=0.45.0+1.17
mod_menu_version=2.0.0-beta.7
forge_version=37.0.69
curseforge_id=419699
modrinth_id=lhGA9TYQ

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists