From 42b0728daeb82ba523191fce11c45dfbd2aa33fc Mon Sep 17 00:00:00 2001 From: Jonathing Date: Tue, 24 Dec 2024 01:18:34 -0500 Subject: [PATCH] Disable clean on TeamCity (#10261) --- build.gradle | 94 +++++++++++++++++++++++++++++++------------------ settings.gradle | 7 ++-- 2 files changed, 64 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle index 2776bebde7..ba80953520 100644 --- a/build.gradle +++ b/build.gradle @@ -202,46 +202,53 @@ project(':mcp') { } } -project(':clean') { - evaluationDependsOn(':mcp') - apply plugin: 'net.minecraftforge.gradle.patcher' - tasks.withType(AbstractPublishToMaven.class).forEach{tsk -> tsk.enabled = false } // We don't want to publish anything +if (!System.env.TEAMCITY_VERSION) { + project(':clean') { + evaluationDependsOn(':mcp') + apply plugin: 'net.minecraftforge.gradle.patcher' + tasks.withType(AbstractPublishToMaven.class).forEach{tsk -> tsk.enabled = false } // We don't want to publish anything - dependencies { - implementation 'net.minecraftforge:forgespi:' + SPI_VERSION - } + dependencies { + implementation 'net.minecraftforge:forgespi:' + SPI_VERSION + } - patcher { - parent = project(':mcp') - mcVersion = MC_VERSION - patchedSrc = file('src/main/java') + patcher { + parent = project(':mcp') + mcVersion = MC_VERSION + patchedSrc = file('src/main/java') - mappings channel: MAPPING_CHANNEL, version: MAPPING_VERSION + mappings channel: MAPPING_CHANNEL, version: MAPPING_VERSION - runs { - clean_client { - client true - taskName 'clean_client' - ideaModule "${rootProject.name}.${project.name}.main" + runs { + clean_client { + client true + taskName 'clean_client' + ideaModule "${rootProject.name}.${project.name}.main" - main 'net.minecraft.client.main.Main' - workingDirectory project.file('run') + main 'net.minecraft.client.main.Main' + workingDirectory project.file('run') - args '--gameDir', '.' - args '--version', MC_VERSION - args '--assetsDir', downloadAssets.output - args '--assetIndex', '{asset_index}' - args '--accessToken', '0' + args '--gameDir', '.' + args '--version', MC_VERSION + args '--assetsDir', downloadAssets.output + args '--assetIndex', '{asset_index}' + args '--accessToken', '0' + } + + clean_server { + client false + taskName 'clean_server' + ideaModule "${rootProject.name}.${project.name}.main" + + main 'net.minecraft.server.Main' + workingDirectory project.file('run') + } } + } - clean_server { - client false - taskName 'clean_server' - ideaModule "${rootProject.name}.${project.name}.main" - - main 'net.minecraft.server.Main' - workingDirectory project.file('run') - } + // Disabling clean with CI causes an error if we don't have this... + compileJava { + dependsOn 'extractMapped' } } } @@ -861,10 +868,15 @@ project(':fmlonly') { // Since we need the modules in the bootstrap, we need to make sure they are compiled before we do each run afterEvaluate { prepareRuns.dependsOn(PACKED_DEPS) } + + // Disabling clean with CI causes an error if we don't have this... + compileJava { + dependsOn 'extractMapped' + } } project(':forge') { - evaluationDependsOn(':clean') + evaluationDependsOn(System.env.TEAMCITY_VERSION ? ':mcp' : ':clean') apply plugin: 'java-library' apply plugin: 'net.minecraftforge.gradle.patcher' apply plugin: 'org.cadixdev.licenser' @@ -938,13 +950,19 @@ project(':forge') { patcher { excs.from file("$rootDir/src/main/resources/forge.exc") - parent = project(':clean') + parent = project(System.env.TEAMCITY_VERSION ? ':mcp' : ':clean') patches = file("$rootDir/patches/minecraft") patchedSrc = file('src/main/java') srgPatches = true accessTransformers.from file("$rootDir/src/main/resources/META-INF/accesstransformer.cfg") sideAnnotationStrippers.from file("$rootDir/src/main/resources/forge.sas") + // the clean project provides these. if we're not using it, we need to provide them ourselves + if (System.env.TEAMCITY_VERSION) { + mappings channel: MAPPING_CHANNEL, version: MAPPING_VERSION + mcVersion = MC_VERSION + } + runs { forge_client { property 'eventbus.checkTypesOnDispatch', 'true' @@ -1628,11 +1646,17 @@ project(':forge') { tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation } + + // Disabling clean with CI causes an error if we don't have this... + compileJava { + dependsOn 'extractMapped' + } } //evaluationDependsOnChildren() task setup() { //These must be strings so that we can do lazy resolution. Else we need evaluationDependsOnChildren above - dependsOn ':clean:extractMapped' + if (!System.env.TEAMCITY_VERSION) + dependsOn ':clean:extractMapped' if (symlinkValid) dependsOn ':fmlonly:extractMapped' dependsOn ':forge:extractMapped' diff --git a/settings.gradle b/settings.gradle index 8f34bebb26..ce87b54bdd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,11 +18,14 @@ include 'javafmllanguage' include 'lowcodelanguage' include ':mcp' -include ':clean' include ':fmlonly' include ':forge' project(":mcp").projectDir = file("projects/mcp") -project(":clean").projectDir = file("projects/clean") project(":fmlonly").projectDir = file("projects/fmlonly") project(":forge").projectDir = file("projects/forge") + +if (!System.env.TEAMCITY_VERSION) { + include ':clean' + project(":clean").projectDir = file("projects/clean") +}