in plugins/docker/component-image/src/integrationTest/java/co/elastic/gradle/dockercomponent/DockerComponentImageBuildPluginRegistryIT.java [68:148]
public void testPushAndScan() throws IOException {
helper.settings("""
rootProject.name = "just-a-test"
""");
helper.buildScript(String.format("""
import java.net.URL
plugins {
id("co.elastic.docker-component")
id("co.elastic.vault")
}
project.version = "myversion"
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
cli {
manifestTool {
val credentials = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
username.set(credentials["username"])
password.set(credentials["plaintext"])
}
snyk {
val credentials = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
username.set(credentials["username"])
password.set(credentials["plaintext"])
}
}
tasks.withType<co.elastic.gradle.snyk.SnykCLIExecTask> {
environment(
"SNYK_TOKEN",
vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/snyk_api_key").get()["apikey"].toString()
)
}
dockerComponentImage {
buildAll {
dockerTagPrefix.set("docker.elastic.co/employees/%s")
from("ubuntu", "20.04")
}
}
""", ghHandle
));
Files.copy(
Objects.requireNonNull(getClass().getResourceAsStream("/docker-component-image.lock")),
helper.projectDir().resolve("docker-component-image.lock")
);
final BuildResult result = gradleRunner.withArguments("--warning-mode", "fail", "-s", "pushManifestList")
.build();
Arrays.stream(Architecture.values()).forEach(arch -> assertContains(
result.getOutput(),
String.format(
"Pushed image docker.elastic.co/employees/%s/just-a-test:myversion-%s",
ghHandle, arch.dockerName()
)
));
assertContains(
result.getOutput(),
String.format(
"Pushed manifest list to docker.elastic.co/employees/%s/just-a-test:myversion",
ghHandle
)
);
final BuildResult scanResult = gradleRunner.withArguments("--warning-mode", "fail", "-s", "dockerComponentImageScan")
.build();
assertContains(
scanResult.getOutput(),
"Monitoring docker.elastic.co/employees/alpar-t/just-a-test:myversion"
);
}