public void testPush()

in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/MoreDockerBaseImageBuildPluginIT.java [52:109]


    public void testPush() throws IOException {
        final Path ghTokenPath = Paths.get(System.getProperty("user.home") + "/.elastic/github.token");
        assumeTrue(
                Files.exists(ghTokenPath),
                "Test will be skipped unless a GH token is present at " + ghTokenPath
        );

        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
                .url(" https://api.github.com/user")
                .header("Authorization", "token " + Files.readString(ghTokenPath).trim())
                .build();

        Response response = client.newCall(request).execute();
        String ghUsername = new ObjectMapper().readTree(response.body().string()).get("login").asText();


        helper.buildScript(String.format("""
                import java.net.URL
                plugins {
                   id("co.elastic.docker-base")
                   id("co.elastic.vault")
                }
                project.version = "myversion"
                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()
                dockerBaseImage {
                    dockerTagPrefix.set("docker.elastic.co/employees/%s")
                    osPackageRepository.set(URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages"))
                    fromUbuntu("ubuntu", "20.04")
                }
                """, ghUsername
        ));
        Files.copy(
                Objects.requireNonNull(getClass().getResourceAsStream("/ubuntu.lockfile.yaml")),
                helper.projectDir().resolve("docker-base-image.lock")
        );
        final BuildResult result = gradleRunner
                .withArguments(
                        "--warning-mode", "fail", "-s", "-DallowInsecureRegistries=true", "dockerBaseImagePush"
                ).build();
        assertContains(
                result.getOutput(),
                String.format(
                        "Pushed image docker.elastic.co/employees/%s/%s-%s:myversion",
                        ghUsername, helper.projectDir().getFileName(), Architecture.current().dockerName()
                )
        );
    }