Skip to content

Commit 8811b05

Browse files
committed
Switch to mod-publish-plugin
1 parent 001ff5d commit 8811b05

File tree

4 files changed

+108
-102
lines changed

4 files changed

+108
-102
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ jobs:
3434
if: ${{ runner.os != 'Windows' }}
3535
run: chmod +x ./gradlew
3636
- name: Build
37-
run: ./gradlew build neoforge:githubRelease neoforge:modrinth neoforge:curseforge fabric:githubRelease fabric:modrinth fabric:curseforge --stacktrace
37+
# run: ./gradlew build neoforge:publishGithub fabric:publishGithub --stacktrace
38+
run: ./gradlew build neoforge:publishGithub neoforge:publishModrinth neoforge:publishCurseforge fabric:publishGithub fabric:publishModrinth fabric:publishCurseforge --stacktrace
3839
env:
3940
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4041
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## 1.0.0
3+
## 1.0.2
44

55
- Added something
66
- Fixed something else

build.gradle

Lines changed: 98 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
plugins {
22
id("fabric-loom") version("${loom_version}") apply(false)
33
id("net.neoforged.moddev") version("${moddev_version}") apply(false)
4-
id("com.modrinth.minotaur") version("${minotaur_version}")
5-
id("net.darkhax.curseforgegradle") version("${curseforgegradle_version}")
6-
id("com.github.breadmoirai.github-release") version("${githubrelease_version}")
4+
id("me.modmuss50.mod-publish-plugin") version("${mpp_version}")
75
id("org.ajoberstar.grgit.service") version("${grgitservice_version}")
86
id("org.cadixdev.licenser") version("${licenser_version}")
97
}
@@ -37,112 +35,123 @@ subprojects {
3735
}
3836
} else {
3937
// Publishing
40-
apply(plugin: "com.modrinth.minotaur")
41-
apply(plugin: "net.darkhax.curseforgegradle")
42-
apply(plugin: "com.github.breadmoirai.github-release")
38+
apply(plugin: "me.modmuss50.mod-publish-plugin")
4339
apply(plugin: "org.ajoberstar.grgit.service")
4440

4541
afterEvaluate {
46-
modrinth {
47-
token = System.getenv().MODRINTH_TOKEN ? System.getenv().MODRINTH_TOKEN : "empty"
48-
projectId = modrinth_id
49-
versionNumber = mod_version
50-
versionType = release_type
51-
versionName = "v${mod_version}-${capsLoader(name)}"
42+
publishMods {
43+
file = project.name == "fabric" ? remapJar.archiveFile : jar.archiveFile
5244
changelog = versionChangelog()
53-
uploadFile = name == "fabric" ? remapJar : jar
54-
loaders = project.property("release_mod_loaders_${name}").split(",") as List
55-
gameVersions = project.property("release_game_versions_${name}").split(",") as List
56-
57-
def deps = []
58-
if (project.hasProperty("release_required_dep_ids_${name}_mr")) {
59-
project.property("release_required_dep_ids_${name}_mr").split(",").each { String id ->
60-
deps << new com.modrinth.minotaur.dependencies.ModDependency(id, "required")
61-
}
62-
}
63-
if (project.hasProperty("release_optional_dep_ids_${name}_mr")) {
64-
project.property("release_optional_dep_ids_${name}_mr").split(",").each { String id ->
65-
deps << new com.modrinth.minotaur.dependencies.ModDependency(id, "optional")
66-
}
45+
version = mod_version
46+
type = me.modmuss50.mpp.ReleaseType.of(release_type)
47+
displayName = "v${mod_version}-${capsLoader(project.name)}"
48+
project.property("release_mod_loaders_${project.name}").split(",").each { String loader ->
49+
modLoaders.add(loader)
6750
}
68-
if (project.hasProperty("release_incompatible_dep_ids_${name}_mr")) {
69-
project.property("release_incompatible_dep_ids_${name}_mr").split(",").each { String id ->
70-
deps << new com.modrinth.minotaur.dependencies.ModDependency(id, "incompatible")
71-
}
72-
}
73-
dependencies = deps
74-
syncBodyFrom = rootProject.file("README.md").text
75-
}
76-
tasks.modrinth.onlyIf { System.getenv().MODRINTH_TOKEN }
77-
tasks.modrinth.dependsOn(build, tasks.modrinthSyncBody)
78-
tasks.modrinthSyncBody.onlyIf { System.getenv().MODRINTH_TOKEN }
51+
maxRetries = 5
7952

80-
task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) {
81-
apiToken = System.getenv().CURSEFORGE_TOKEN ? System.getenv().CURSEFORGE_TOKEN : "empty"
53+
discord {
54+
webhookUrl = providers.environmentVariable("DISCORD_WEBHOOK")
55+
// dryRunWebhookUrl = providers.environmentVariable("DISCORD_WEBHOOK_DRY_RUN")
56+
username = mod_name
57+
avatarUrl = "https://github.com/${github_repo}/HEAD/common/src/main/resources/assets/${mod_id}/icon.png"
8258

83-
disableVersionDetection()
84-
String module = project.name
59+
// Set the content message, in this example a header is added before the changelog. Defaults to just the changelog
60+
// content = changelog.map { "# A new version of my cool mod has been released! \n" + it}
61+
}
62+
63+
github {
64+
dryRun = providers.environmentVariable("GITHUB_TOKEN").getOrNull() == null
65+
accessToken = providers.environmentVariable("GITHUB_TOKEN")
66+
repository = github_repo
67+
commitish = grgitService.service.get().grgit.branch.current().name
68+
tagName = "v${mod_version}"
69+
allowEmptyFiles = true
70+
announcementTitle = "Download from GitHub"
71+
// parent tasks.named("publishGithub")
72+
additionalFiles.from(sourcesJar.archiveFile)
8573

86-
def file = upload(curseforge_id, module == "fabric" ? remapJar : jar)
87-
file.displayName = "v${mod_version}-${capsLoader(module)}"
88-
file.releaseType = release_type
89-
file.changelog = versionChangelog()
90-
file.changelogType = "markdown"
91-
project.property("release_mod_loaders_${module}").split(",").each { String id ->
92-
file.addModLoader(id)
74+
changelog = "\n\n## Changelog\n\n" + versionChangelog() + "## MC versions\n\n"
75+
+ (project.hasProperty("release_game_versions_fabric") ? "- Fabric: "
76+
+ project.property("release_game_versions_fabric") + "\n" : "")
77+
+ (project.hasProperty("release_game_versions_neoforge") ? "- NeoForge: "
78+
+ project.property("release_game_versions_neoforge") + "\n" : "")
9379
}
94-
project.property("release_game_versions_${module}").split(",").each { String id ->
95-
file.addGameVersion(id, module)
80+
modrinth {
81+
dryRun = providers.environmentVariable("MODRINTH_TOKEN").getOrNull() == null
82+
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
83+
projectId = modrinth_id
84+
minecraftVersions.addAll(project.property("release_game_versions_${project.name}").split(","))
85+
announcementTitle = "Download from Modrinth"
86+
projectDescription = providers.fileContents(layout.projectDirectory.file("README.md")).asText
87+
if (project.hasProperty("release_required_dep_ids_${project.name}_mr")) {
88+
project.property("release_required_dep_ids_${project.name}_mr").split(",").each { String mrId ->
89+
requires { id = mrId }
90+
}
91+
}
92+
if (project.hasProperty("release_optional_dep_ids_${project.name}_mr")) {
93+
project.property("release_optional_dep_ids_${project.name}_mr").split(",").each { String mrId ->
94+
optional { id = mrId }
95+
}
96+
}
97+
if (project.hasProperty("release_incompatible_dep_ids_${project.name}_mr")) {
98+
project.property("release_incompatible_dep_ids_${project.name}_mr").split(",").each { String mrId ->
99+
incompatible { id = mrId }
100+
}
101+
}
102+
if (project.hasProperty("release_embedded_dep_ids_${project.name}_mr")) {
103+
project.property("release_embedded_dep_ids_${project.name}_mr").split(",").each { String mrId ->
104+
embeds { id = mrId }
105+
}
106+
}
96107
}
108+
curseforge {
109+
dryRun = providers.environmentVariable("CURSEFORGE_TOKEN").getOrNull() == null
110+
accessToken = providers.environmentVariable("CURSEFORGE_TOKEN")
111+
projectId = curseforge_id
112+
minecraftVersions.addAll(project.property("release_game_versions_${project.name}").split(","))
113+
announcementTitle = "Download from CurseForge"
114+
javaVersions.add(JavaVersion.current())
115+
clientRequired = true
116+
projectSlug = curseforge_slug
97117

98-
if (project.hasProperty("release_required_dep_ids_${module}_cf")) {
99-
project.property("release_required_dep_ids_${module}_cf").split(",").each { String id ->
100-
file.addRequirement(id)
118+
if (project.hasProperty("release_required_dep_ids_${project.name}_cf")) {
119+
project.property("release_required_dep_ids_${project.name}_cf").split(",").each { String slug ->
120+
requires(slug)
121+
}
101122
}
102-
}
103-
if (project.hasProperty("release_optional_dep_ids_${module}_cf")) {
104-
project.property("release_optional_dep_ids_${module}_cf").split(",").each { String id ->
105-
file.addOptional(id)
123+
if (project.hasProperty("release_optional_dep_ids_${project.name}_cf")) {
124+
project.property("release_optional_dep_ids_${project.name}_cf").split(",").each { String slug ->
125+
optional(slug)
126+
}
106127
}
107-
}
108-
if (project.hasProperty("release_incompatible_dep_ids_${module}_cf")) {
109-
project.property("release_incompatible_dep_ids_${module}_cf").split(",").each { String id ->
110-
file.addIncompatibility(id)
128+
if (project.hasProperty("release_incompatible_dep_ids_${project.name}_cf")) {
129+
project.property("release_incompatible_dep_ids_${project.name}_cf").split(",").each { String slug ->
130+
incompatible(slug)
131+
}
132+
}
133+
if (project.hasProperty("release_embedded_dep_ids_${project.name}_cf")) {
134+
project.property("release_embedded_dep_ids_${project.name}_cf").split(",").each { String slug ->
135+
embeds(slug)
136+
}
111137
}
112138
}
113139
}
114-
tasks.curseforge.onlyIf { System.getenv().CURSEFORGE_TOKEN }
115-
tasks.curseforge.dependsOn(build)
116-
117-
githubRelease {
118-
token = System.getenv().GITHUB_TOKEN ? System.getenv().GITHUB_TOKEN : "empty"
119-
owner = github_repo_owner
120-
repo = github_repo
121-
tagName = "v${mod_version}"
122-
prerelease = release_type == "alpha" || release_type == "beta"
123-
releaseName = "v${mod_version}"
124-
125-
String changelog = "\n\n## Changelog\n\n" + versionChangelog()
126-
String versions = "## MC versions\n\n"
127-
if (project.hasProperty("release_game_versions_fabric"))
128-
versions = String.format("%s - Fabric: %s\n", versions,
129-
project.property("release_game_versions_fabric"))
130-
if (project.hasProperty("release_game_versions_neoforge"))
131-
versions = String.format("%s - NeoForge: %s\n", versions,
132-
project.property("release_game_versions_neoforge"))
133-
body = versions + changelog
134-
135-
targetCommitish = grgitService.service.get().grgit.branch.current().name
136-
overwrite = false
137-
allowUploadToExisting = true
138-
releaseAssets = List.of(name == "fabric" ? remapJar : jar, sourcesJar)
139-
}
140-
tasks.githubRelease.onlyIf { System.getenv().GITHUB_TOKEN }
141-
tasks.githubRelease.dependsOn(build)
140+
tasks.publishMods.dependsOn(build)
142141
}
143142
}
144143
}
145144

145+
//publishMods {
146+
// github {
147+
// accessToken = providers.environmentVariable("GITHUB_TOKEN")
148+
// repository = github_repo
149+
// commitish = grgitService.service.get().grgit.branch.current().name
150+
// tagName = "v${mod_version}"
151+
// allowEmptyFiles = true
152+
// }
153+
//}
154+
146155
String versionChangelog() {
147156
List<String> lines = rootProject.file("CHANGELOG.md").readLines()
148157
StringBuilder builder = new StringBuilder()

gradle.properties

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Neo/Forge version ranges: https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
44

55
# Project
6-
mod_version=1.0.0+1.21
6+
mod_version=1.0.2+1.21
77
mod_group=dev.terminalmc
88
mod_id=framework
99
mod_name=Framework
@@ -62,12 +62,12 @@ modmenu_versions_fabric=>10
6262

6363
# GitHub, Modrinth, CurseForge releases
6464
# Plural properties expect CSV lists
65-
github_repo_owner=TerminalMC
66-
github_repo=Framework
65+
github_repo=TerminalMC/Framework
6766
modrinth_id=raDGbHBr
6867
curseforge_id=833352
69-
# 'release', 'alpha' or 'beta'
70-
release_type=release
68+
curseforge_slug=tmc-framework
69+
# 'STABLE', 'BETA' or 'ALPHA'
70+
release_type=STABLE
7171
# Fabric
7272
release_mod_loaders_fabric=fabric
7373
release_game_versions_fabric=1.21,1.21.1
@@ -89,12 +89,8 @@ mixinextras_version=0.4.1
8989
loom_version=1.7.4
9090
# ModDev https://plugins.gradle.org/plugin/net.neoforged.moddev
9191
moddev_version=1.0.19
92-
# Minotaur https://plugins.gradle.org/plugin/com.modrinth.minotaur
93-
minotaur_version=2.8.7
94-
# CurseForgeGradle https://plugins.gradle.org/plugin/net.darkhax.curseforgegradle
95-
curseforgegradle_version=1.1.25
96-
# github-release https://plugins.gradle.org/plugin/com.github.breadmoirai.github-release
97-
githubrelease_version=2.5.2
92+
# Mod Publish Plugin https://plugins.gradle.org/plugin/me.modmuss50.mod-publish-plugin
93+
mpp_version=0.8.1
9894
# grgit-service https://github.com/ajoberstar/grgit/releases
9995
grgitservice_version=5.2.2
10096
# licenser https://plugins.gradle.org/plugin/org.cadixdev.licenser

0 commit comments

Comments
 (0)