Update spring-boot-launch-script-tests to use docker-test plugin

See gh-41228
This commit is contained in:
Andy Wilkinson 2024-06-25 12:50:41 +01:00
parent 6564abb12a
commit 7e4d60e07f
51 changed files with 15 additions and 15 deletions

View File

@ -1,7 +1,7 @@
plugins { plugins {
id "java" id "java"
id "org.springframework.boot.conventions" id "org.springframework.boot.conventions"
id "org.springframework.boot.integration-test" id "org.springframework.boot.docker-test"
id "de.undercouch.download" id "de.undercouch.download"
} }
@ -19,15 +19,15 @@ dependencies {
app project(path: ":spring-boot-project:spring-boot-parent", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-parent", configuration: "mavenRepository")
app project(path: ":spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin", configuration: "mavenRepository")
intTestImplementation(enforcedPlatform(project(":spring-boot-project:spring-boot-parent"))) dockerTestImplementation(enforcedPlatform(project(":spring-boot-project:spring-boot-parent")))
intTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
intTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) dockerTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))
intTestImplementation("org.testcontainers:testcontainers") dockerTestImplementation("org.testcontainers:testcontainers")
} }
task syncMavenRepository(type: Sync) { task syncMavenRepository(type: Sync) {
from configurations.app from configurations.app
into "${buildDir}/int-test-maven-repository" into "${buildDir}/docker-test-maven-repository"
} }
task syncAppSource(type: org.springframework.boot.build.SyncAppSource) { task syncAppSource(type: org.springframework.boot.build.SyncAppSource) {
@ -59,10 +59,10 @@ task syncJdkDownloads(type: Sync) {
into "${project.buildDir}/downloads/jdk/bellsoft/" into "${project.buildDir}/downloads/jdk/bellsoft/"
} }
processIntTestResources { tasks.named("processDockerTestResources").configure {
dependsOn syncJdkDownloads dependsOn syncJdkDownloads
} }
intTest { tasks.named("dockerTest").configure {
dependsOn buildApp dependsOn buildApp
} }

View File

@ -6,7 +6,7 @@ plugins {
apply plugin: "io.spring.dependency-management" apply plugin: "io.spring.dependency-management"
repositories { repositories {
maven { url "file:${rootDir}/../int-test-maven-repository"} maven { url "file:${rootDir}/../docker-test-maven-repository"}
mavenCentral() mavenCentral()
maven { url "https://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }

View File

@ -1,6 +1,6 @@
pluginManagement { pluginManagement {
repositories { repositories {
maven { url "file:${rootDir}/../int-test-maven-repository"} maven { url "file:${rootDir}/../docker-test-maven-repository"}
mavenCentral() mavenCentral()
maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -57,7 +57,7 @@ abstract class AbstractLaunchScriptIntegrationTests {
static List<Object[]> filterParameters(Predicate<File> osFilter) { static List<Object[]> filterParameters(Predicate<File> osFilter) {
List<Object[]> parameters = new ArrayList<>(); List<Object[]> parameters = new ArrayList<>();
for (File os : new File("src/intTest/resources/conf").listFiles()) { for (File os : new File("src/dockerTest/resources/conf").listFiles()) {
if (osFilter.test(os)) { if (osFilter.test(os)) {
for (File version : os.listFiles()) { for (File version : os.listFiles()) {
parameters.add(new Object[] { os.getName(), version.getName() }); parameters.add(new Object[] { os.getName(), version.getName() });
@ -103,10 +103,10 @@ abstract class AbstractLaunchScriptIntegrationTests {
super(createImage(os, version)); super(createImage(os, version));
withCopyFileToContainer(MountableFile.forHostPath(findApplication().getAbsolutePath()), "/app.jar"); withCopyFileToContainer(MountableFile.forHostPath(findApplication().getAbsolutePath()), "/app.jar");
withCopyFileToContainer( withCopyFileToContainer(
MountableFile.forHostPath("src/intTest/resources/scripts/" + scriptsDir + "test-functions.sh"), MountableFile.forHostPath("src/dockerTest/resources/scripts/" + scriptsDir + "test-functions.sh"),
"/test-functions.sh"); "/test-functions.sh");
withCopyFileToContainer( withCopyFileToContainer(
MountableFile.forHostPath("src/intTest/resources/scripts/" + scriptsDir + testScript), MountableFile.forHostPath("src/dockerTest/resources/scripts/" + scriptsDir + testScript),
"/" + testScript); "/" + testScript);
withCommand("/bin/bash", "-c", withCommand("/bin/bash", "-c",
"chown root:root *.sh && chown root:root *.jar && chmod +x " + testScript + " && ./" + testScript); "chown root:root *.sh && chown root:root *.jar && chmod +x " + testScript + " && ./" + testScript);
@ -117,7 +117,7 @@ abstract class AbstractLaunchScriptIntegrationTests {
ImageFromDockerfile image = new ImageFromDockerfile( ImageFromDockerfile image = new ImageFromDockerfile(
"spring-boot-launch-script/" + os.toLowerCase() + "-" + version); "spring-boot-launch-script/" + os.toLowerCase() + "-" + version);
image.withFileFromFile("Dockerfile", image.withFileFromFile("Dockerfile",
new File("src/intTest/resources/conf/" + os + "/" + version + "/Dockerfile")); new File("src/dockerTest/resources/conf/" + os + "/" + version + "/Dockerfile"));
for (File file : new File("build/downloads/jdk/bellsoft").listFiles()) { for (File file : new File("build/downloads/jdk/bellsoft").listFiles()) {
image.withFileFromFile("downloads/" + file.getName(), file); image.withFileFromFile("downloads/" + file.getName(), file);
} }