-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
69 lines (55 loc) · 1.97 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage
plugins {
id("java")
id("org.springframework.boot") version "3.2.0-M1" apply false
id("io.spring.dependency-management") version "1.1.1"
}
val GITHUB_REF_NAME = System.getenv("GITHUB_REF_NAME")
val GITHUB_SHA = System.getenv("GITHUB_SHA")
val DOCKER_USERNAME = System.getenv("DOCKER_USERNAME")
val DOCKER_PASSWORD= System.getenv("DOCKER_PASSWORD")
val services = project("services").subprojects
allprojects {
apply(plugin = "java")
group = "com.github.antrakos.petclinic"
repositories {
mavenCentral()
maven { url = uri("https://repo.spring.io/milestone") }
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(20))
vendor.set(JvmVendorSpec.ADOPTIUM)
}
}
tasks.test {
useJUnitPlatform()
}
}
configure(services) {
apply(plugin = "org.springframework.boot")
apply(plugin = "io.spring.dependency-management")
version = "1.0"
dependencies {
implementation(platform("org.springframework.boot:spring-boot-dependencies:3.2.0-M1"))
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.boot:spring-boot-testcontainers")
}
fun version() = when(GITHUB_REF_NAME) {
"master" -> "$version-${GITHUB_SHA?.take(6)}"
null -> "$version-local"
else -> "$version-$GITHUB_REF_NAME-${GITHUB_SHA?.take(6)}"
}
tasks.withType<BootBuildImage> {
imageName = "antrakos/${project.name}:${version()}"
if (GITHUB_REF_NAME == "master") tags.add("antrakos/${project.name}:latest")
environment.put("BPE_DELIM_JAVA_TOOL_OPTIONS", " ")
buildpacks.set(listOf("paketobuildpacks/adoptium:latest", "paketo-buildpacks/java"))
docker {
publishRegistry {
username = DOCKER_USERNAME
password = DOCKER_PASSWORD
}
}
}
}