public void testPushAndScan()

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"
        );

    }