/
build.gradle
76 lines (65 loc) · 1.91 KB
/
build.gradle
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
plugins {
id('java-library')
}
sourceSets {
integTest
}
tasks.register("integTest", Test) {
classpath = sourceSets.integTest.runtimeClasspath
testClassesDirs = sourceSets.integTest.output.classesDirs
}
// tag::integTest[]
tasks.named('integTest') {
inputs.property("operatingSystem") {
System.getProperty("os.name")
}
}
// end::integTest[]
// tag::distributionPathInput[]
// Don't do this! Breaks relocatability!
tasks.named('integTest') {
systemProperty "distribution.location", layout.buildDirectory.dir('dist').get().asFile.absolutePath
}
// end::distributionPathInput[]
// tag::distributionDirInput[]
abstract class DistributionLocationProvider implements CommandLineArgumentProvider { // <1>
@InputDirectory
@PathSensitive(PathSensitivity.RELATIVE) // <2>
abstract DirectoryProperty getDistribution()
@Override
Iterable<String> asArguments() {
["-Ddistribution.location=${distribution.get().asFile.absolutePath}"] // <3>
}
}
tasks.named('integTest') {
jvmArgumentProviders.add(
objects.newInstance(DistributionLocationProvider).tap { // <4>
distribution = layout.buildDirectory.dir('dist')
}
)
}
// end::distributionDirInput[]
// tag::ignoreSystemProperties[]
abstract class CiEnvironmentProvider implements CommandLineArgumentProvider {
@Internal // <1>
abstract Property<String> getAgentNumber()
@Override
Iterable<String> asArguments() {
["-DagentNumber=${agentNumber.get()}"] // <2>
}
}
tasks.named('integTest') {
jvmArgumentProviders.add(
objects.newInstance(CiEnvironmentProvider).tap { // <3>
agentNumber = providers.environmentVariable("AGENT_NUMBER").orElse("1")
}
)
}
// end::ignoreSystemProperties[]
// tag::environment[]
tasks.named('integTest') {
inputs.property("langEnvironment") {
System.getenv("LANG")
}
}
// end::environment[]