in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/MoreDockerBaseImageBuildPluginIT.java [112:181]
public void testTasksAreSkippedOnUnsupportedArch() throws IOException {
final Architecture currentArchitecture = Architecture.current();
final Architecture otherArchitecture = Arrays.stream(Architecture.values())
.filter(value -> !currentArchitecture.equals(value))
.findFirst()
.orElseThrow(() -> new IllegalStateException("No architecture found"));
helper.buildScript(String.format("""
import %s.*
import java.net.URL
plugins {
id("co.elastic.docker-base")
id("co.elastic.vault")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
repositories {
mavenCentral()
}
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"))
fromUbuntu("ubuntu", "20.04")
platforms.add(%s)
}
""", Architecture.class.getName(), otherArchitecture
));
Files.copy(
Objects.requireNonNull(getClass().getResourceAsStream("/ubuntu.lockfile.yaml")),
helper.projectDir().resolve("docker-base-image.lock")
);
Assertions.assertEquals(
TaskOutcome.SKIPPED,
Objects.requireNonNull(
gradleRunner.withArguments("--warning-mode", "fail", "-s", "dockerBaseImageLockfile")
.build()
.task(":dockerBaseImageLockfile")
).getOutcome(),
"Expected dockerBaseImageLockfile to be skipped but it was not "
);
final BuildResult result = gradleRunner.withArguments("--warning-mode", "fail", "-s",
"dockerBasePull",
"dockerBaseImageBuild",
"dockerBaseImagePush"
).build();
List.of(
":dockerBasePull", ":dockerBaseImageBuild", ":dockerBaseImagePush"
).forEach(task -> {
Assertions.assertEquals(
TaskOutcome.SKIPPED,
Objects.requireNonNull(result.task(task)).getOutcome(),
"Expected " + task + " to be skipped but it was not "
);
});
}