Automate CurseForge and Modrinth releases
This commit is contained in:
parent
7bcfd63cf7
commit
28a8785fd9
34
.github/workflows/publish.yml
vendored
Normal file
34
.github/workflows/publish.yml
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
name: Release for 1.20.1
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ '1.20.1' ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: Publish release JAR for Ex Deorum
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "startsWith(github.event.head_commit.message, '[Release]')"
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'microsoft'
|
||||||
|
java-version: '17'
|
||||||
|
|
||||||
|
- name: Setup Gradle
|
||||||
|
uses: gradle/actions/setup-gradle@v4
|
||||||
|
|
||||||
|
- name: Upload to CurseForge
|
||||||
|
run: ./gradlew curseforge
|
||||||
|
env:
|
||||||
|
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
|
||||||
|
|
||||||
|
- name: Upload to Modrinth
|
||||||
|
run: ./gradlew publishModrinth
|
||||||
|
env:
|
||||||
|
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
|
||||||
64
build.gradle
64
build.gradle
|
|
@ -3,13 +3,13 @@ plugins {
|
||||||
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
|
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
|
||||||
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
|
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
|
||||||
id 'org.spongepowered.mixin' version '0.7.+'
|
id 'org.spongepowered.mixin' version '0.7.+'
|
||||||
|
id("com.modrinth.minotaur") version "2.+"
|
||||||
|
id("com.matthewprenger.cursegradle") version "1.4.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
version = '1.41'
|
version = '1.41'
|
||||||
group = 'thedarkcolour.exdeorum'
|
group = 'thedarkcolour.exdeorum'
|
||||||
base {
|
base.archivesName = 'exdeorum'
|
||||||
archivesName = 'exdeorum'
|
|
||||||
}
|
|
||||||
|
|
||||||
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||||
java.withSourcesJar()
|
java.withSourcesJar()
|
||||||
|
|
@ -215,3 +215,61 @@ idea {
|
||||||
downloadJavadoc = true
|
downloadJavadoc = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (System.getenv("CURSEFORGE_TOKEN")) {
|
||||||
|
curseforge {
|
||||||
|
apiKey = System.getenv("CURSEFORGE_TOKEN")
|
||||||
|
|
||||||
|
project {
|
||||||
|
id = "901420"
|
||||||
|
changelogType = "markdown"
|
||||||
|
changelog = getChangelog(project.version)
|
||||||
|
|
||||||
|
releaseType = "release"
|
||||||
|
|
||||||
|
addGameVersion(mc_version)
|
||||||
|
addGameVersion("Forge")
|
||||||
|
addGameVersion("NeoForge")
|
||||||
|
addGameVersion("Java 17")
|
||||||
|
|
||||||
|
mainArtifact(jar.archiveFile) {
|
||||||
|
displayName = "Ex Deorum ${project.version}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
modrinth {
|
||||||
|
token = System.getenv("MODRINTH_TOKEN")
|
||||||
|
projectId = "WP0FLyzv"
|
||||||
|
uploadFile = jar
|
||||||
|
gameVersions = [mc_version]
|
||||||
|
loaders = ["forge", "neoforge"]
|
||||||
|
changelog = getChangelog(project.version)
|
||||||
|
}
|
||||||
|
|
||||||
|
static def getChangelog(Object version) {
|
||||||
|
version = version.toString()
|
||||||
|
|
||||||
|
def file = new File('changelog.md')
|
||||||
|
if (!file.exists()) {
|
||||||
|
return "Changelog file not found"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Relies on the changelog block being "##blahblahblah_VERSION" where _ is a space
|
||||||
|
def content = file.text.normalize().split("##.* ")
|
||||||
|
|
||||||
|
for (final def chunk in content) {
|
||||||
|
if (chunk.isEmpty()) continue
|
||||||
|
|
||||||
|
def lineTerminatorIndex = chunk.findIndexOf { c -> c == '\n' || c == '\r' }
|
||||||
|
def versionString = chunk.substring(0, lineTerminatorIndex)
|
||||||
|
|
||||||
|
if (versionString == version) {
|
||||||
|
return "## Ex Deorum $version\n" + chunk.substring(lineTerminatorIndex + 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback in case this fails
|
||||||
|
return "Ex Deorum Update ${version}"
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user