-
Notifications
You must be signed in to change notification settings - Fork 780
/
build.gradle.kts
103 lines (83 loc) · 2.53 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
plugins {
java
idea
eclipse
id("org.springframework.boot")
id("io.spring.dependency-management")
id("com.github.ben-manes.versions")
id("com.diffplug.spotless")
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
repositories {
mavenCentral()
}
sourceSets {
create("functionalTest") {
java {
compileClasspath += sourceSets.main.get().output + sourceSets.test.get().output
runtimeClasspath += sourceSets.main.get().output + sourceSets.test.get().output
srcDir("src/functional-test/java")
}
}
}
idea {
module {
testSources.from(sourceSets["functionalTest"].java.srcDirs)
}
}
val functionalTestImplementation: Configuration by configurations.getting {
extendsFrom(configurations.implementation.get())
}
val functionalTestRuntimeOnly: Configuration by configurations.getting
configurations {
configurations["functionalTestImplementation"].extendsFrom(configurations.testImplementation.get())
configurations["functionalTestRuntimeOnly"].extendsFrom(configurations.testRuntimeOnly.get())
}
val functionalTest = task<Test>("functionalTest") {
description = "Runs functional tests."
group = "verification"
testClassesDirs = sourceSets["functionalTest"].output.classesDirs
classpath = sourceSets["functionalTest"].runtimeClasspath
shouldRunAfter("test")
useJUnitPlatform()
testLogging {
events ("failed", "passed", "skipped", "standard_out")
}
}
dependencies {
/* Spring Boot */
implementation ("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude (group = "org.junit.vintage", module = "junit-vintage-engine")
}
}
tasks.named<Test>("test") {
useJUnitPlatform()
testLogging {
events ("failed", "passed", "skipped", "standard_out")
}
}
tasks.check { dependsOn(functionalTest) }
fun isNonStable(version: String): Boolean {
val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.uppercase().contains(it) }
val regex = "^[0-9,.v-]+(-r)?$".toRegex()
val isStable = stableKeyword || regex.matches(version)
return isStable.not()
}
tasks.withType<DependencyUpdatesTask> {
rejectVersionIf {
isNonStable(candidate.version)
}
gradleReleaseChannel="current"
}
spotless {
java {
palantirJavaFormat()
formatAnnotations()
}
}