Force even earlier init of unpacked Jars

[no changelog]
This commit is contained in:
Linnea Gräf
2024-10-31 22:49:44 +01:00
parent 7a53357569
commit 653454e290
2 changed files with 12 additions and 5 deletions

View File

@@ -25,7 +25,10 @@ jobs:
- name: Set up gradle cache
uses: gradle/actions/setup-gradle@v3
- name: Build with gradle
run: ./gradlew clean test remapJar --stacktrace
run: |
./gradlew clean
./gradlew unpackAllJars --stacktrace
./gradlew test remapJar --stacktrace
- name: Upload build artifact
uses: actions/upload-artifact@v3
with:

View File

@@ -100,18 +100,22 @@ kotlin {
}
}
fun String.capitalizeN() = replaceFirstChar { it.uppercaseChar() }
// Usually a normal sync takes care of this, but in CI everything needs to run in one shot, so we need to improvise.
val unpackAllJars by tasks.registering
fun innerJarsOf(name: String, dependency: Dependency): Provider<FileTree> {
val task = tasks.create("unpackInnerJarsFor${name.capitalizeN()}", InnerJarsUnpacker::class) {
doFirst {
println("Unpacking JARs for $name")
}
this.inputJars.setFrom(files(configurations.detachedConfiguration(dependency)))
this.outputDir.set(layout.buildDirectory.dir("unpackedJars/$name").also {
it.get().asFile.mkdirs()
})
}
println("Constructed innerJars task: ${project.files(task).toList()}")
unpackAllJars { dependsOn(task) }
println("Constructed innerJars task: ${project.files(task).asFileTree.toList().map {it to it.exists()}}")
return project.provider {
val files = project.files(task)
files.files // Force resolution
files.asFileTree
project.files(task).asFileTree
}
}