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()
)
);
}