Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/changelog-comment.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module.exports = async ({ github, context }) => {
const issue_number = pull.number;
const repo = { ...context.repo, issue_number };
const comments = await github.paginate(github.rest.issues.listComments, repo);
for (const project of ['sounds', 'mru', 'shields']) {
for (const project of ['sounds', 'mru', 'shields', 'fog']) {
if (!pull.labels.some(label => label.name === `project:${project}`)) continue;
const marker = `[release-changelog-${project}]: #`;
if (comments.some(comment => comment.user.type === 'Bot' && comment.body.split(/\r?\n/).includes(marker))) continue;
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/prepare-release.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const git = (...values) => run('git', values);
const project = option('project');
const version = option('version');
const versionPattern = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
if (!['sounds', 'mru', 'shields'].includes(project) || !versionPattern.test(version ?? '')) throw new Error('Provide --project sounds|mru|shields and --version X.Y.Z. Optional: --from REF, --write.');
if (!['sounds', 'mru', 'shields', 'fog'].includes(project) || !versionPattern.test(version ?? '')) throw new Error('Provide --project sounds|mru|shields|fog and --version X.Y.Z. Optional: --from REF, --write.');
const suffix = version.match(/^[^-+]+(?:-([^+]+))?(?:\+(.+))?$/);
if ([suffix?.[1], suffix?.[2]].filter(Boolean).some(value => value.split('.').some(part => !part)) || suffix?.[1]?.split('.').some(part => /^0\d+$/.test(part))) throw new Error('Invalid semantic version suffix');
const head = git('rev-parse', 'HEAD');
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
description: project
type: choice
required: true
options: [sounds, mru, shields]
options: [sounds, mru, shields, fog]
version:
description: version
type: string
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- mru/v*
- sounds/v*
- shields/v*
- fog/v*
workflow_dispatch:
inputs:
tag:
Expand All @@ -32,8 +33,8 @@ jobs:
RELEASE_TAG: ${{ inputs.tag || github.ref_name }}
run: |
case "$RELEASE_TAG" in
sounds/v*|mru/v*|shields/v*) ;;
*) echo 'Expected a sounds/v, mru/v, or shields/v release tag'; exit 1 ;;
sounds/v*|mru/v*|shields/v*|fog/v*) ;;
*) echo 'Expected a sounds/v, mru/v, shields/v, or fog/v release tag'; exit 1 ;;
esac
test "$(git rev-parse HEAD)" = "$(git rev-parse "refs/tags/$RELEASE_TAG^{commit}")"
echo "RELEASE_MOD=${RELEASE_TAG%%/*}" >> "$GITHUB_ENV"
Expand All @@ -50,7 +51,7 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
run: |
case "$RELEASE_MOD" in
mru|sounds|shields) task=":$RELEASE_MOD:publishMods" ;;
mru|sounds|shields|fog) task=":$RELEASE_MOD:publishMods" ;;
*) exit 1 ;;
esac
GITHUB_REF_TYPE=tag GITHUB_REF_NAME="$RELEASE_TAG" GITHUB_SHA="$(git rev-parse HEAD)" bash ./gradlew --no-daemon --build-cache "$task"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
.idea/
.gradle/
**/.gradle/
**/.kotlin/
**/build/
**/run/
**/runs/
Expand Down
4 changes: 3 additions & 1 deletion build-logic/src/main/kotlin/imb11.fabric-mod.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ loom {
}
}
runs {
if (metadata.optional("mod.environment") == "client") {
remove(getByName("server"))
}
configureEach {
isIdeConfigGenerated = true
configName = "${metadata.required("mod.name")} - $targetMinecraftVersion - Fabric - ${name.replaceFirstChar { it.titlecase() }}"
appendProjectPathToConfigName.set(false)
ideConfigFolder.set(metadata.required("mod.name"))
runDir(rootProject.file("run/${metadata.id}/$targetMinecraftVersion/fabric/$name").relativeTo(project.projectDir).invariantSeparatorsPath)
}
Expand Down
2 changes: 2 additions & 0 deletions build-logic/src/main/kotlin/imb11.mod.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ val resourceProperties = mapOf(
"target_loader" to if (loader == "fabric") catalog.findVersion("fabric-loader").get().requiredVersion
else "[${catalog.findVersion("neoforge").get().requiredVersion},)",
"target_fabricloader" to catalog.findVersion("fabric-loader").get().requiredVersion,
"target_architectury" to catalog.findVersion("architectury").map { it.requiredVersion }.orElse(""),
"target_yacl" to if (loader == "fabric") ">=$yaclVersion" else yaclVersion,
"target_mru" to if (loader == "fabric") ">=$requiredModVersion" else requiredModVersion
)
Expand Down Expand Up @@ -113,6 +114,7 @@ jsonlang {

repositories {
mavenCentral()
maven("https://maven.architectury.dev")
maven("https://maven.fabricmc.net/")
maven("https://maven.neoforged.net/releases/")
maven("https://maven.shedaniel.me/")
Expand Down
8 changes: 5 additions & 3 deletions build-logic/src/main/kotlin/imb11.neoforge-mod.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,11 @@ neoForge {
client()
gameDirectory.set(rootProject.layout.projectDirectory.dir("run/${metadata.id}/$minecraftVersion/neoforge/client"))
}
register("server") {
server()
gameDirectory.set(rootProject.layout.projectDirectory.dir("run/${metadata.id}/$minecraftVersion/neoforge/server"))
if (metadata.optional("mod.environment") != "client") {
register("server") {
server()
gameDirectory.set(rootProject.layout.projectDirectory.dir("run/${metadata.id}/$minecraftVersion/neoforge/server"))
}
}
}
}
Expand Down
5 changes: 3 additions & 2 deletions build-logic/src/main/kotlin/imb11.publish-mod.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ plugins {
}

val modData = readModMetadata(layout.projectDirectory)
val clientOnly = modData.optional("mod.environment") == "client" || modData.id == "sounds"
val releaseTag = "${modData.id}/v${modData.version}"
val publishDryRun = providers.gradleProperty("publishDryRun").map(String::toBoolean).orElse(false)
val releaseChangelog = providers.fileContents(layout.projectDirectory.file("CHANGELOG.md")).asText.map { contents ->
Expand Down Expand Up @@ -75,7 +76,7 @@ publishMods {
projectId = modData.required("publish.modrinth")
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
minecraftVersions.add(minecraftVersion)
environment = if (modData.id == "sounds") ModrinthEnvironment.CLIENT_ONLY else ModrinthEnvironment.CLIENT_AND_SERVER
environment = if (clientOnly) ModrinthEnvironment.CLIENT_ONLY else ModrinthEnvironment.CLIENT_AND_SERVER
requiredMods.forEach { requires(it) }
}

Expand All @@ -85,7 +86,7 @@ publishMods {
accessToken = providers.environmentVariable("CURSEFORGE_TOKEN")
minecraftVersions.add(minecraftVersion)
client = true
server = modData.id != "sounds"
server = !clientOnly
requiredMods.forEach { requires(it) }
}
}
Expand Down
8 changes: 5 additions & 3 deletions build-logic/src/main/kotlin/imb11.root.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,11 @@ tasks.register("publishAllMods") {
dependsOn(modProjects.map { "${it.path}:publishMods" })
}

project(":sounds").pluginManager.withPlugin("imb11.publish-mod") {
project(":sounds").tasks.withType<PublishModTask>().configureEach {
mustRunAfter(":mru:publishMods")
listOf(":sounds", ":fog").forEach { mod ->
project(mod).pluginManager.withPlugin("imb11.publish-mod") {
project(mod).tasks.withType<PublishModTask>().configureEach {
mustRunAfter(":mru:publishMods")
}
}
}

Expand Down
Loading
Loading