Fixed runtime configuration

- Timeout overrides retain original values for restoration
- Timeout restoration preserves operator changes and symbolic links
- Tests cover timeout persistence and failed configuration writes
- Runtime targets use separate Gradle caches and shared module outputs
- Modded build inputs include test fixtures and runtime cache settings
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-18 18:15:46 -04:00
1 parent 64f7a7a9ac
commit b357eee181
10 files changed
+380 -26

No files matched your search

@@ -18,7 +18,7 @@ TaskProvider<JavaExec> resolvedRevisionVerification = tasks.register('verifyReso
classpath = files('../../buildSrc/build/libs/buildSrc.jar')
mainClass.set('art.arcane.iris.buildtools.GenerationBuildRevision')
doFirst {
String runtimeVariant = providers.gradleProperty('irisRuntimeJava').getOrElse(irisModTarget.java.toString()) == '21' ? 'java21/' : ''
String runtimeVariant = gradle.extensions.extraProperties.get('irisRuntimeOutputVariant').toString()
List<String> arguments = ['verify-dependencies', file("../../core/build/${runtimeVariant}generated/generation-revision/META-INF/iris/generation-kernels/abi-1.revision").absolutePath]
for (ResolvedArtifact artifact : configurations.bundle.resolvedConfiguration.resolvedArtifacts) {
String group = artifact.moduleVersion.id.group
+23
View File
@@ -0,0 +1,23 @@
import groovy.json.JsonSlurper
boolean adapter = rootProject.name.startsWith('iris-')
File irisDirectory = adapter ? new File(settingsDir, '../..').canonicalFile : settingsDir
String minecraftVersion = providers.gradleProperty('minecraftVersion').getOrElse('26.3')
Map<String, Map<String, Object>> modTargets = (Map<String, Map<String, Object>>) new JsonSlurper()
.parse(new File(irisDirectory, 'gradle/mod-targets.json'))
Map<String, Object> modTarget = modTargets.get(minecraftVersion)
if (modTarget == null) {
throw new GradleException("Unsupported Iris mod target ${minecraftVersion}; choose ${modTargets.keySet().join(', ')}")
}
String runtimeJava = providers.gradleProperty('irisRuntimeJava').getOrElse(modTarget.java.toString())
String variant = adapter ? "minecraft${minecraftVersion}-java${runtimeJava}" : "java${runtimeJava}"
File projectCacheRoot = gradle.startParameter.projectCacheDir ?: new File(settingsDir, '.gradle')
gradle.startParameter.projectCacheDir = new File(projectCacheRoot, variant)
String runtimeOutputVariant = runtimeJava == '21' ? 'java21/' : ''
if (adapter) {
runtimeOutputVariant = "modded/${rootProject.name}/${variant}/"
} else if (gradle.parent != null && gradle.parent.extensions.extraProperties.has('irisRuntimeOutputVariant')) {
runtimeOutputVariant = gradle.parent.extensions.extraProperties.get('irisRuntimeOutputVariant').toString()
}
gradle.extensions.extraProperties.set('irisRuntimeOutputVariant', runtimeOutputVariant)