Home / Class/ BootBuildImageRegistryIntegrationTests Class — spring-boot Architecture

BootBuildImageRegistryIntegrationTests Class — spring-boot Architecture

Architecture documentation for the BootBuildImageRegistryIntegrationTests class in BootBuildImageRegistryIntegrationTests.java from the spring-boot codebase.

Entity Profile

Relationship Graph

Source Code

build-plugin/spring-boot-gradle-plugin/src/dockerTest/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageRegistryIntegrationTests.java lines 49–108

@GradleCompatibility
@Testcontainers(disabledWithoutDocker = true)
@Disabled("Disabled until differences between running locally and in CI can be diagnosed")
class BootBuildImageRegistryIntegrationTests {

	@Container
	static final RegistryContainer registry = TestImage.container(RegistryContainer.class);

	String registryAddress;

	@SuppressWarnings("NullAway.Init")
	GradleBuild gradleBuild;

	@BeforeEach
	void setUp() {
		assertThat(registry.isRunning()).isTrue();
		this.registryAddress = registry.getHost() + ":" + registry.getFirstMappedPort();
	}

	@TestTemplate
	void buildsImageAndPublishesToRegistry() throws IOException {
		writeMainClass();
		String repoName = "test-image";
		String imageName = this.registryAddress + "/" + repoName;
		BuildResult result = this.gradleBuild.build("bootBuildImage", "--imageName=" + imageName);
		BuildTask task = result.task(":bootBuildImage");
		assertThat(task).isNotNull();
		assertThat(task.getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
		assertThat(result.getOutput()).contains("Building image")
			.contains("Successfully built image")
			.contains("Pushing image '" + imageName + ":latest" + "'")
			.contains("Pushed image '" + imageName + ":latest" + "'");
		ImageReference imageReference = ImageReference.of(imageName);
		Image pulledImage = new DockerApi().image().pull(imageReference, null, UpdateListener.none());
		assertThat(pulledImage).isNotNull();
		new DockerApi().image().remove(imageReference, false);
	}

	private void writeMainClass() {
		File examplePackage = new File(this.gradleBuild.getProjectDir(), "src/main/java/example");
		examplePackage.mkdirs();
		File main = new File(examplePackage, "Main.java");
		try (PrintWriter writer = new PrintWriter(new FileWriter(main))) {
			writer.println("package example;");
			writer.println();
			writer.println("import java.io.IOException;");
			writer.println();
			writer.println("public class Main {");
			writer.println();
			writer.println("    public static void main(String[] args) {");
			writer.println("    }");
			writer.println();
			writer.println("}");
		}
		catch (IOException ex) {
			throw new RuntimeException(ex);
		}
	}

}

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free