in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/DockerBaseImageMatrix.java [34:84]
public void testSingleProject(String baseImages, @TempDir Path gradleHome) throws IOException, InterruptedException {
helper.writeFile("image_content/foo.txt", "sample content");
writeSimpleBuildScript(helper, baseImages);
final BuildResult lockfileResult = runGradleTask(gradleRunner, "dockerBaseImageLockfile", gradleHome);
System.out.println(lockfileResult.getOutput());
runGradleTask(gradleRunner, "dockerLocalImport", gradleHome);
System.out.println("Running verification script...");
Files.copy(
Objects.requireNonNull(getClass().getResourceAsStream("/test_created_image.sh")),
helper.projectDir().resolve("test_created_image.sh")
);
Files.setPosixFilePermissions(
helper.projectDir().resolve("test_created_image.sh"),
PosixFilePermissions.fromString("r-xr-xr-x")
);
final Process process = new ProcessBuilder()
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
.directory(helper.projectDir().toFile())
.command(helper.projectDir().resolve("test_created_image.sh").toString())
.start();
do {
IOUtils.copy(process.getInputStream(), System.out);
IOUtils.copy(process.getErrorStream(), System.err);
} while (process.isAlive());
final int exitCode = process.waitFor();
if (exitCode != 0) {
Assertions.fail("Verification script failed with exit code: " + exitCode);
}
System.out.println("Verification script completed successfully...");
final Set<String> imagesInDaemonRightBeforeClean = getImagesInDaemon();
final String expectedLocalTag = "gradle-test-local/" + helper.projectDir().getFileName() + "-base:latest";
if (!imagesInDaemonRightBeforeClean.contains(expectedLocalTag)) {
fail("Expected " + expectedLocalTag + " to be present in the daemon after local import but it was not");
}
runGradleTask(gradleRunner, "dockerBaseImageClean", gradleHome);
Set<String> imagesInDaemonAfterClean = getImagesInDaemon();
if (imagesInDaemonAfterClean.contains(expectedLocalTag)) {
fail("Expected " + expectedLocalTag + " to be not be in the daemon after clean but it was");
}
}