-
Notifications
You must be signed in to change notification settings - Fork 4.6k
/
Gradleception.kt
57 lines (48 loc) · 2.12 KB
/
Gradleception.kt
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
package configurations
import common.Os.LINUX
import common.buildToolGradleParameters
import common.customGradle
import common.requiresNotEc2Agent
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildSteps
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.GradleBuildStep
import model.CIBuildModel
import model.Stage
class Gradleception(model: CIBuildModel, stage: Stage) : BaseGradleBuildType(model, stage = stage, init = {
id("${model.projectId}_Gradleception")
name = "Gradleception - Java8 Linux"
description = "Builds Gradle with the version of Gradle which is currently under development (twice)"
params {
param("env.JAVA_HOME", LINUX.buildJavaHome())
}
requirements {
// Gradleception is a heavy build which runs ~40m on EC2 agents but only ~20m on Hetzner agents
requiresNotEc2Agent()
}
features {
publishBuildStatusToGithub(model)
}
failureConditions {
javaCrash = false
}
val buildScanTagForType = buildScanTag("Gradleception")
val defaultParameters = (buildToolGradleParameters() + listOf(buildScanTagForType)).joinToString(separator = " ")
applyDefaults(model, this, ":distributions-full:install", notQuick = true, extraParameters = "-Pgradle_installPath=dogfood-first $buildScanTagForType", extraSteps = {
localGradle {
name = "BUILD_WITH_BUILT_GRADLE"
tasks = "clean :distributions-full:install"
gradleHome = "%teamcity.build.checkoutDir%/dogfood-first"
gradleParams = "-Pgradle_installPath=dogfood-second -PignoreIncomingBuildReceipt=true $defaultParameters"
}
localGradle {
name = "QUICKCHECK_WITH_GRADLE_BUILT_BY_GRADLE"
tasks = "clean sanityCheck test distributionsIntegTests:forkingIntegTest"
gradleHome = "%teamcity.build.checkoutDir%/dogfood-second"
gradleParams = defaultParameters
}
})
})
fun BuildSteps.localGradle(init: GradleBuildStep.() -> Unit): GradleBuildStep =
customGradle(init) {
param("ui.gradleRunner.gradle.wrapper.useWrapper", "false")
buildFile = ""
}