in plugins/docker/component-image/src/integrationTest/java/co/elastic/gradle/dockercomponent/DockerComponentPluginIT.java [280:326]
public void testDynamicallyGenerated() throws IOException {
helper.buildScript("""
plugins {
id("co.elastic.docker-component")
}
val archive by tasks.registering(Zip::class) {
from("build.gradle.kts")
archiveFileName.set("my.zip")
destinationDirectory.set(layout.buildDirectory.dir("dist"))
}
val custom by tasks.registering {
outputs.file("$buildDir/build.gradle.kts")
doLast {
copy {
from("build.gradle.kts")
into(buildDir)
}
}
}
dockerComponentImage {
buildAll {
from("ubuntu", "20.04")
copySpec {
from(archive)
from(custom)
into("home")
}
}
}
""");
Files.copy(Objects.requireNonNull(getClass().getResourceAsStream("/docker-component-image.lock")), helper.projectDir().resolve("docker-component-image.lock"));
final BuildResult result = runGradleTask("dockerComponentImageBuild");
System.out.println(result.getOutput());
final List<BuildTask> tasks = result.getTasks();
final BuildTask custom = result.task(":custom");
final BuildTask archive = result.task(":archive");
final BuildTask dockerComponentImageBuild = result.task(":dockerComponentImageBuild");
assertNotNull(custom, "Expected :custom task to run");
assertNotNull(archive, "Expected :archive task to run");
assertNotNull(dockerComponentImageBuild, "Expected :dockerComponentImageBuild task to run");
assertTrue(tasks.indexOf(custom) < tasks.indexOf(dockerComponentImageBuild), "Expected :custom to run before the image build");
assertTrue(tasks.indexOf(archive) < tasks.indexOf(dockerComponentImageBuild), "Expected :archive to run before the image build");
}