/
build.gradle.kts
74 lines (62 loc) · 2.04 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
plugins {
id("java-library")
}
sourceSets {
create("integTest")
}
val taskProvider = tasks.register<Test>("integTest") {
classpath = sourceSets["integTest"].runtimeClasspath
testClassesDirs = sourceSets["integTest"].output.classesDirs
}
val TaskContainer.integTest: TaskProvider<Test> get() = taskProvider // define accessor we would get if 'integTest' was defined in plugin
// tag::integTest[]
tasks.integTest {
inputs.property("operatingSystem") {
System.getProperty("os.name")
}
}
// end::integTest[]
// tag::distributionPathInput[]
// Don't do this! Breaks relocatability!
tasks.integTest {
systemProperty("distribution.location", layout.buildDirectory.dir("dist").get().asFile.absolutePath)
}
// end::distributionPathInput[]
// tag::distributionDirInput[]
abstract class DistributionLocationProvider : CommandLineArgumentProvider { // <1>
@get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE) // <2>
abstract val distribution: DirectoryProperty
override fun asArguments(): Iterable<String> =
listOf("-Ddistribution.location=${distribution.get().asFile.absolutePath}") // <3>
}
tasks.integTest {
jvmArgumentProviders.add(
objects.newInstance<DistributionLocationProvider>().apply { // <4>
distribution = layout.buildDirectory.dir("dist")
}
)
}
// end::distributionDirInput[]
// tag::ignoreSystemProperties[]
abstract class CiEnvironmentProvider : CommandLineArgumentProvider {
@get:Internal // <1>
abstract val agentNumber: Property<String>
override fun asArguments(): Iterable<String> =
listOf("-DagentNumber=${agentNumber.get()}") // <2>
}
tasks.integTest {
jvmArgumentProviders.add(
objects.newInstance<CiEnvironmentProvider>().apply { // <3>
agentNumber = providers.environmentVariable("AGENT_NUMBER").orElse("1")
}
)
}
// end::ignoreSystemProperties[]
// tag::environment[]
tasks.integTest {
inputs.property("langEnvironment") {
System.getenv("LANG")
}
}
// end::environment[]