in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/DockerBaseImageLockFileIT.java [33:138]
public void testLockfileWithEmulationWolfiFromProject() throws IOException {
helper.settings("""
include("p1")
include("p2")
""");
helper.buildScript("evaluationDependsOnChildren()");
helper.buildScript("p1", """
import java.net.URL
plugins {
id("co.elastic.cli.jfrog")
id("co.elastic.vault")
id("co.elastic.docker-base")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
osPackageRepository.set(
URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages")
)
dockerTagLocalPrefix.set("docker.elastic.co/gradle")
dockerTagPrefix.set("docker.elastic.co/cloud-ci")
fromWolfi("docker.elastic.co/wolfi/chainguard-base", "latest")
}
""");
helper.buildScript("p2", """
import java.net.URL
plugins {
id("co.elastic.cli.jfrog")
id("co.elastic.vault")
id("co.elastic.docker-base")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
osPackageRepository.set(
URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages")
)
dockerTagLocalPrefix.set("docker.elastic.co/gradle")
dockerTagPrefix.set("docker.elastic.co/cloud-ci")
from(project(":p1"))
}
""");
System.out.println(runGradleTask("p1:dockerBaseImageLockfileAllWithEmulation").getOutput());
final BuildResult result = runGradleTask("p2:dockerBaseImageLockfileAllWithEmulation");
System.out.println(result.getOutput());
final BuildResult dockerBaseImageBuild = runGradleTask("dockerBaseImageBuild");
System.out.println("==== dockerBaseImageBuild ====");
System.out.println(dockerBaseImageBuild.getOutput());
//Building the image should not build the emulation tasks
Arrays.stream(Architecture.values()).map(Architecture::dockerName).forEach(arch ->
{
Assertions.assertFalse(
dockerBaseImageBuild.getTasks().stream().map(BuildTask::getPath).anyMatch(it -> it.contains(arch)),
"Expected that with dockerBaseImageBuild tasks requiring emulation did not run, but they did"
);
}
);
final BuildResult dockerBaseImageLocalImport = runGradleTask("dockerBaseImageLocalImport");
System.out.println("==== dockerBaseImageLocalImport ====");
System.out.println(dockerBaseImageLocalImport.getOutput());
//Building the image should not build the emulation tasks
Arrays.stream(Architecture.values()).map(Architecture::dockerName).forEach(arch ->
{
Assertions.assertFalse(
dockerBaseImageLocalImport.getTasks().stream().map(BuildTask::getPath).anyMatch(it -> it.contains(arch)),
"Expected that with dockerBaseImageLocalImport tasks requiring emulation did not run, but they did"
);
}
);
}