You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.9 KiB
Groovy
83 lines
2.9 KiB
Groovy
plugins {
|
|
id "java"
|
|
id "org.springframework.boot.conventions"
|
|
id "org.springframework.boot.integration-test"
|
|
id "de.undercouch.download"
|
|
}
|
|
|
|
description = "Spring Boot Loader Integration Tests"
|
|
|
|
def oracleJdkVersion = "17.0.8"
|
|
def oracleJdkArch = "aarch64".equalsIgnoreCase(System.getProperty("os.arch")) ? "aarch64" : "x64"
|
|
|
|
configurations {
|
|
app
|
|
}
|
|
|
|
dependencies {
|
|
app project(path: ":spring-boot-project:spring-boot-dependencies", 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-starters:spring-boot-starter-web", configuration: "mavenRepository")
|
|
app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter", configuration: "mavenRepository")
|
|
app("org.bouncycastle:bcprov-jdk18on:1.76")
|
|
|
|
intTestImplementation(enforcedPlatform(project(":spring-boot-project:spring-boot-parent")))
|
|
intTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
|
intTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))
|
|
intTestImplementation("org.testcontainers:junit-jupiter")
|
|
intTestImplementation("org.testcontainers:testcontainers")
|
|
}
|
|
|
|
task syncMavenRepository(type: Sync) {
|
|
from configurations.app
|
|
into "${buildDir}/int-test-maven-repository"
|
|
}
|
|
|
|
task syncAppSource(type: org.springframework.boot.build.SyncAppSource) {
|
|
sourceDirectory = file("spring-boot-loader-tests-app")
|
|
destinationDirectory = file("${buildDir}/spring-boot-loader-tests-app")
|
|
}
|
|
|
|
task buildApp(type: GradleBuild) {
|
|
dependsOn syncAppSource, syncMavenRepository
|
|
dir = "${buildDir}/spring-boot-loader-tests-app"
|
|
startParameter.buildCacheEnabled = false
|
|
tasks = ["build"]
|
|
}
|
|
|
|
task syncSignedJarAppSource(type: org.springframework.boot.build.SyncAppSource) {
|
|
sourceDirectory = file("spring-boot-loader-tests-signed-jar")
|
|
destinationDirectory = file("${buildDir}/spring-boot-loader-tests-signed-jar")
|
|
}
|
|
|
|
task buildSignedJarApp(type: GradleBuild) {
|
|
dependsOn syncSignedJarAppSource, syncMavenRepository
|
|
dir = "${buildDir}/spring-boot-loader-tests-signed-jar"
|
|
startParameter.buildCacheEnabled = false
|
|
tasks = ["build"]
|
|
}
|
|
|
|
task downloadJdk(type: Download) {
|
|
def destFolder = new File(project.gradle.gradleUserHomeDir, "caches/springboot/downloads/jdk/oracle")
|
|
destFolder.mkdirs()
|
|
src "https://download.oracle.com/java/17/archive/jdk-${oracleJdkVersion}_linux-${oracleJdkArch}_bin.tar.gz"
|
|
dest destFolder
|
|
tempAndMove true
|
|
overwrite false
|
|
}
|
|
|
|
task syncJdkDownloads(type: Sync) {
|
|
dependsOn downloadJdk
|
|
from "${project.gradle.gradleUserHomeDir}/caches/springboot/downloads/jdk/oracle/"
|
|
include "jdk-${oracleJdkVersion}_linux-${oracleJdkArch}_bin.tar.gz"
|
|
into "${project.buildDir}/downloads/jdk/oracle/"
|
|
}
|
|
|
|
processIntTestResources {
|
|
dependsOn syncJdkDownloads
|
|
}
|
|
|
|
intTest {
|
|
dependsOn buildApp, buildSignedJarApp
|
|
}
|