in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/MoreDockerBaseImageBuildPluginIT.java [220:275]
public void testWithGeneratedInput() throws IOException {
helper.buildScript("""
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()
}
}
val archive by tasks.registering(Zip::class) {
from("build.gradle.kts")
archiveFileName.set("my.zip")
destinationDirectory.set(layout.buildDirectory.dir("dist"))
}
val custom by tasks.registering {
outputs.file("$buildDir/build.gradle.kts")
doLast {
copy {
from("build.gradle.kts")
into(buildDir)
}
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
dockerBaseImage {
osPackageRepository.set(
URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages")
)
fromUbuntu("ubuntu", "20.04")
copySpec {
from(archive)
from(custom)
into("home")
}
run("find /home", "ls /home/my.zip", "ls /home/build.gradle.kts")
}
"""
);
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",
"dockerBaseImageBuild"
).build();
assertContains(result.getOutput(), "/home/my.zip");
}