From 6362fe40e301211074e57e64e8ae0e2448fb77ba Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 15 Nov 2020 20:32:36 +0800 Subject: [PATCH] Publish to CF --- .github/workflows/publish.yml | 7 +++-- build.gradle | 34 +++++++++++++++++++++ fabric/build.gradle | 32 ++++++++++++++++++- fabric/src/main/resources/fabric.mod.json | 2 +- forge/build.gradle | 31 ++++++++++++++++++- forge/src/main/resources/META-INF/mods.toml | 2 +- gradle.properties | 1 + 7 files changed, 102 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6a677dad..4b58dae6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,7 +1,7 @@ name: Java CI on: - [push] + [ push ] jobs: build: @@ -13,7 +13,8 @@ jobs: with: java-version: 1.8 - name: Upload to Bintray - run: ./gradlew bintrayUpload --stacktrace + run: ./gradlew bintrayUpload curseforgePublish --stacktrace env: BINTRAY_USER: shedaniel - BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} \ No newline at end of file + BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} + curse_api_key: ${{ secrets.CURSE_API_KEY }} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 73f3d7c0..b1dda41c 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id "architect-plugin" version "1.1.15" id "org.cadixdev.licenser" version "0.5.0" id "com.jfrog.bintray" version "1.8.4" + id "com.matthewprenger.cursegradle" version "1.4.0" apply false id "maven" id "maven-publish" } @@ -55,4 +56,37 @@ bintray { vcsUrl = "https://github.com/shedaniel/architectury.git" } } +} + +def releaseChangelog = "No changelog" +task curseforgePublish { + def dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm") + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")) + def branch + if (System.env.BRANCH_NAME) { + branch = System.env.BRANCH_NAME + branch = branch.substring(branch.lastIndexOf("/") + 1) + } else { + branch = "git rev-parse --abbrev-ref HEAD".execute().in.text.trim() + } + if (branch == "HEAD") { + branch = "git rev-parse --short HEAD".execute().in.text.trim() + } + def time = dateFormat.format(new Date()) + def changes = new StringBuilder() + changes << "

Architectury v$project.version for $project.supported_version

Updated at $time.
Click here for changelog" + def proc = "git log --max-count=200 --pretty=format:%s".execute() + proc.in.eachLine { line -> + def processedLine = line.toString() + if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { + changes << "
- ${processedLine.capitalize()}" + } + } + proc.waitFor() + releaseChangelog = changes.toString() +} + +afterEvaluate { +// curseforgePublish.dependsOn project("fabric").tasks.getByName("curseforge") +// curseforgePublish.dependsOn project("forge").tasks.getByName("curseforge") } \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 0530ef61..304a9dfa 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,6 +1,7 @@ plugins { id "fabric-loom" id "com.github.johnrengelman.shadow" version "5.0.0" + id "com.matthewprenger.cursegradle" } loom { @@ -53,10 +54,39 @@ remapJar { publishing { publications { mavenFabric(MavenPublication) { - artifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}-fabric.jar")) { + artifact(remapJar.archivePath) { builtBy build classifier "fabric" } } } +} + +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") + project { + id = "419697" + releaseType = "release" + changelogType = "html" + changelog = rootProject.releaseChangelog + addGameVersion "1.16-Snapshot" + addGameVersion "1.16.4" + addGameVersion "Java 8" + addGameVersion "Fabric" + relations { + requiredDependency "fabric-api" + } + mainArtifact(remapJar.archivePath.toFile()) { + displayName = "[Fabric $rootProject.supported_version] v$project.version" + } + afterEvaluate { + uploadTask.dependsOn("build") + } + } + } + options { + forgeGradleIntegration = false + javaVersionAutoDetect = false + } } \ No newline at end of file diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 0cc0c150..ffb7ca72 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -22,6 +22,6 @@ }, "accessWidener": "architectury.accessWidener", "depends": { - "minecraft": ">=1.16.2" + "minecraft": ">=1.16.4" } } \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle index 7bcf073f..57f36066 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -12,6 +12,7 @@ buildscript { plugins { id "com.github.johnrengelman.shadow" version "5.0.0" id "eclipse" + id "com.matthewprenger.cursegradle" } apply plugin: "net.minecraftforge.gradle" @@ -73,10 +74,38 @@ reobf { publishing { publications { mavenForge(MavenPublication) { - artifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}-forge.jar")) { + artifact(shadowJar.archivePath) { builtBy shadowJar classifier "forge" } } } +} + +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") + project { + id = "419699" + releaseType = "release" + changelogType = "html" + changelog = rootProject.releaseChangelog + addGameVersion "1.16.4" + addGameVersion "Java 8" + addGameVersion "Forge" + relations { + requiredDependency "fabric-api" + } + mainArtifact(shadowJar.archivePath.toFile()) { + displayName = "[Forge $rootProject.supported_version] v$project.version" + } + afterEvaluate { + uploadTask.dependsOn("build") + } + } + } + options { + forgeGradleIntegration = false + javaVersionAutoDetect = false + } } \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 1e493545..2417bb93 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[32,)" +loaderVersion = "[33,)" issueTrackerURL = "https://github.com/shedaniel/architectury/issues" license = "Apache-2.0" diff --git a/gradle.properties b/gradle.properties index 45d4696c..19f3dc9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false minecraft_version=1.16.4 +supported_version=1.16.4 archives_base_name=architectury mod_version=1.0