Skip to content

Commit 7040f04

Browse files
committed
Run builds on forked repo
1 parent 21344fe commit 7040f04

File tree

2 files changed

+98
-7
lines changed

2 files changed

+98
-7
lines changed

.teamcity/Buildship/GitHubVcsRoot.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,14 @@ object GitHubVcsRoot : GitVcsRoot({
1010
checkoutPolicy = AgentCheckoutPolicy.AUTO
1111
authMethod = anonymous()
1212
})
13+
14+
object GitHubForkVcsRoot : GitVcsRoot({
15+
name = "BuildshipFork"
16+
url = "https://github.com/gradle/buildship.git"
17+
agentGitPath = "%env.TEAMCITY_GIT_PATH%"
18+
agentCleanFilesPolicy = AgentCleanFilesPolicy.NON_IGNORED_ONLY
19+
checkoutPolicy = AgentCheckoutPolicy.AUTO
20+
authMethod = anonymous()
21+
branch = "refs/heads/master"
22+
branchSpec = "+:*"
23+
})

.teamcity/Buildship/Project.kt

Lines changed: 87 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import jetbrains.buildServer.configs.kotlin.v2019_2.*
44
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
55
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
66
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.*
7+
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
78

89
val individualBuildsForPhase1 = listOf(
910
IndividualScenarioBuildType(ScenarioType.SANITY_CHECK, OS.LINUX, EclipseVersion.ECLIPSE4_13, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8) // TODO use latest Eclipse version for sanity check coverage
@@ -55,6 +56,57 @@ val individualBuildsForPhase4 = listOf(
5556
//IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_18)
5657
)
5758

59+
val individualBuildsForPhase1Forked = listOf(
60+
IndividualScenarioBuildType(ScenarioType.SANITY_CHECK, OS.LINUX, EclipseVersion.ECLIPSE4_13, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot) // TODO use latest Eclipse version for sanity check coverage
61+
)
62+
val individualBuildsForPhase2Forked = listOf(
63+
IndividualScenarioBuildType(ScenarioType.BASIC_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
64+
IndividualScenarioBuildType(ScenarioType.BASIC_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_20, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
65+
IndividualScenarioBuildType(ScenarioType.BASIC_COVERAGE, OS.WINDOWS, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
66+
IndividualScenarioBuildType(ScenarioType.BASIC_COVERAGE, OS.WINDOWS, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot)
67+
)
68+
val individualBuildsForPhase3Forked = listOf(
69+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
70+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_9, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
71+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_10, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
72+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_11, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
73+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_12, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
74+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_13, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
75+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_14, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
76+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_15, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
77+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_16, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
78+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_17, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
79+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_18, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
80+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_19, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
81+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_20, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
82+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_21, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
83+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_22, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
84+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
85+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_24, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
86+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_25, eclipseRuntimeJdk = Jdk.OPEN_JDK_17, GitHubForkVcsRoot),
87+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_26, eclipseRuntimeJdk = Jdk.OPEN_JDK_17, GitHubForkVcsRoot),
88+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.LINUX, EclipseVersion.ECLIPSE4_27, eclipseRuntimeJdk = Jdk.OPEN_JDK_17, GitHubForkVcsRoot),
89+
90+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.WINDOWS, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
91+
IndividualScenarioBuildType(ScenarioType.FULL_COVERAGE, OS.WINDOWS, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot)
92+
)
93+
val individualBuildsForPhase4Forked = listOf(
94+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_8, GitHubForkVcsRoot),
95+
// TODO Eclipse 4.8 can only run on Java 8 and below without further configuration https://wiki.eclipse.org/Configure_Eclipse_for_Java_9
96+
//IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.ORACLE_JDK_9, GitHubForkVcsRoot),
97+
//IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_8, eclipseRuntimeJdk = Jdk.OPEN_JDK_10, GitHubForkVcsRoot),
98+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_11, GitHubForkVcsRoot),
99+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_12, GitHubForkVcsRoot),
100+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_13, GitHubForkVcsRoot),
101+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_14, GitHubForkVcsRoot),
102+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_15, GitHubForkVcsRoot),
103+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_16, GitHubForkVcsRoot),
104+
IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_17, GitHubForkVcsRoot),
105+
// TODO JDK 18 is only supported in Eclipse 4.24
106+
//IndividualScenarioBuildType(ScenarioType.CROSS_VERSION, OS.LINUX, EclipseVersion.ECLIPSE4_23, eclipseRuntimeJdk = Jdk.OPEN_JDK_18, GitHubForkVcsRoot)
107+
)
108+
109+
58110
val tb1_1 = CheckpointBuildType("Sanity Check (Phase 1/1)", individualBuildsForPhase1, null)
59111
val tb1_2 = CheckpointBuildType("Basic Test Coverage (Phase 1/2)", individualBuildsForPhase1, null)
60112
val tb2_2 = CheckpointBuildType("Basic Test Coverage (Phase 2/2)", individualBuildsForPhase2, tb1_2)
@@ -66,6 +118,17 @@ val tb4_2 = CheckpointBuildType("Cross-Version Test Coverage (Phase 2/4)", indiv
66118
val tb4_3 = CheckpointBuildType("Cross-Version Test Coverage (Phase 3/4)", individualBuildsForPhase3, tb4_2)
67119
val tb4_4 = CheckpointBuildType("Cross-Version Test Coverage (Phase 4/4)", individualBuildsForPhase4, tb4_3)
68120

121+
val tb1_1_f = CheckpointBuildType("Sanity Check (Fork, Phase 1/1)", individualBuildsForPhase1Forked, null, Trigger.NONE, GitHubForkVcsRoot)
122+
val tb1_2_f = CheckpointBuildType("Basic Test Coverage (Fork, Phase 1/2)", individualBuildsForPhase1Forked, null, Trigger.NONE, GitHubForkVcsRoot)
123+
val tb2_2_f = CheckpointBuildType("Basic Test Coverage (Fork, Phase 2/2)", individualBuildsForPhase2Forked, tb1_2_f, Trigger.NONE, GitHubForkVcsRoot)
124+
val tb3_1_f = CheckpointBuildType("Full Test Coverage (Fork, Phase 1/3)", individualBuildsForPhase1Forked, null, Trigger.GIT, GitHubForkVcsRoot)
125+
val tb3_2_f = CheckpointBuildType("Full Test Coverage (Fork, Phase 2/3)", individualBuildsForPhase2Forked, tb3_1_f, Trigger.NONE, GitHubForkVcsRoot)
126+
val tb3_3_f = CheckpointBuildType("Full Test Coverage (Fork, Phase 3/3)", individualBuildsForPhase3Forked, tb3_2_f, Trigger.NONE, GitHubForkVcsRoot)
127+
val tb4_1_f = CheckpointBuildType("Cross-Version Test Coverage (Fork, Phase 1/4)", individualBuildsForPhase1Forked, null, Trigger.NONE, GitHubForkVcsRoot)
128+
val tb4_2_f = CheckpointBuildType("Cross-Version Test Coverage (Fork, Phase 2/4)", individualBuildsForPhase2Forked, tb4_1_f, Trigger.NONE, GitHubForkVcsRoot)
129+
val tb4_3_f = CheckpointBuildType("Cross-Version Test Coverage (Fork, Phase 3/4)", individualBuildsForPhase3Forked, tb4_2_f, Trigger.NONE, GitHubForkVcsRoot)
130+
val tb4_4_f = CheckpointBuildType("Cross-Version Test Coverage (Fork, Phase 4/4)", individualBuildsForPhase4Forked, tb4_3_f, Trigger.NONE, GitHubForkVcsRoot)
131+
69132
val unsafeSnapshotPromotion = PromotionBuildType("snapshot (from sanity check)","snapshot", tb1_1)
70133
val snapshotPromotion = PromotionBuildType("snapshot", "snapshot", tb4_4, Trigger.DAILY_MASTER)
71134
val milestonePromotion = PromotionBuildType("milestone","milestone", tb4_4)
@@ -74,8 +137,8 @@ val individualSnapshotPromotions = EclipseVersion.values().map { SinglePromotion
74137
val individualReleasePromotions = EclipseVersion.values().map { SinglePromotionBuildType("Release Eclipse ${it.codeName}", "release", it, tb1_1) } // TODO should depend on tb4_4
75138

76139

77-
class IndividualScenarioBuildType(type: ScenarioType, os: OS, eclipseVersion: EclipseVersion, eclipseRuntimeJdk: Jdk) : BuildType({
78-
createId("Individual", "${type.name.toLowerCase()}_Test_Coverage_${os.name.toLowerCase()}_Eclipse${eclipseVersion.versionNumber}_OnJava${eclipseRuntimeJdk.majorVersion}")
140+
class IndividualScenarioBuildType(type: ScenarioType, os: OS, eclipseVersion: EclipseVersion, eclipseRuntimeJdk: Jdk, vcsRoot: GitVcsRoot = GitHubVcsRoot) : BuildType({
141+
createId("Individual", "${vcsRoot.name}_${type.name.toLowerCase()}_Test_Coverage_${os.name.toLowerCase()}_Eclipse${eclipseVersion.versionNumber}_OnJava${eclipseRuntimeJdk.majorVersion}")
79142
addCredentialsLeakFailureCondition()
80143

81144
artifactRules = """
@@ -95,6 +158,17 @@ class IndividualScenarioBuildType(type: ScenarioType, os: OS, eclipseVersion: Ec
95158
param("env.GRADLE_ENTERPRISE_ACCESS_KEY", "%ge.gradle.org.access.key%")
96159
}
97160

161+
if (vcsRoot == GitHubForkVcsRoot) {
162+
triggers {
163+
vcs {
164+
quietPeriodMode = VcsTrigger.QuietPeriodMode.DO_NOT_USE
165+
perCheckinTriggering = true
166+
groupCheckinsByCommitter = true
167+
enableQueueOptimization = false
168+
}
169+
}
170+
}
171+
98172
triggers {
99173
retryBuild {
100174
delaySeconds = 0
@@ -116,7 +190,7 @@ class IndividualScenarioBuildType(type: ScenarioType, os: OS, eclipseVersion: Ec
116190
}
117191

118192
vcs {
119-
root(GitHubVcsRoot)
193+
root(vcsRoot)
120194
checkoutMode = CheckoutMode.ON_AGENT
121195
}
122196

@@ -260,12 +334,12 @@ class SinglePromotionBuildType(promotionName: String, typeName: String, eclipseV
260334
})
261335

262336

263-
class CheckpointBuildType(triggerName: String, scenarios: List<IndividualScenarioBuildType>, previousCheckpoint: CheckpointBuildType?, trigger: Trigger = Trigger.NONE) : BuildType({
337+
class CheckpointBuildType(triggerName: String, scenarios: List<IndividualScenarioBuildType>, previousCheckpoint: CheckpointBuildType?, trigger: Trigger = Trigger.NONE, vcsRoot: GitVcsRoot = GitHubVcsRoot) : BuildType({
264338
createId("Checkpoint", triggerName)
265339
trigger.applyOn(this)
266340

267341
vcs {
268-
root(GitHubVcsRoot)
342+
root(vcsRoot)
269343

270344
checkoutMode = CheckoutMode.ON_AGENT
271345
cleanCheckout = true
@@ -296,6 +370,7 @@ class CheckpointBuildType(triggerName: String, scenarios: List<IndividualScenari
296370

297371
object Project : Project({
298372
description = "Eclipse plugins for Gradle http://eclipse.org/buildship"
373+
vcsRoot(GitHubForkVcsRoot)
299374
vcsRoot(GitHubVcsRoot)
300375
subprojectsWithOrder(listOf(IndividualBuilds, Checkpoints, Promotions))
301376

@@ -318,7 +393,8 @@ object Project : Project({
318393

319394
object IndividualBuilds : Project({
320395
createId("Individual Coverage Scenarios")
321-
buildTypesWithOrder(individualBuildsForPhase1 + individualBuildsForPhase2 + individualBuildsForPhase3 + individualBuildsForPhase4)
396+
buildTypesWithOrder(individualBuildsForPhase1 + individualBuildsForPhase2 + individualBuildsForPhase3 + individualBuildsForPhase4 +
397+
individualBuildsForPhase1Forked + individualBuildsForPhase2Forked + individualBuildsForPhase3Forked + individualBuildsForPhase4Forked)
322398
})
323399

324400
object Checkpoints : Project({
@@ -327,7 +403,11 @@ object Checkpoints : Project({
327403
tb1_1,
328404
tb1_2, tb2_2,
329405
tb3_1, tb3_2, tb3_3,
330-
tb4_1, tb4_2, tb4_3, tb4_4))
406+
tb4_1, tb4_2, tb4_3, tb4_4,
407+
tb1_1_f,
408+
tb1_2_f, tb2_2_f,
409+
tb3_1_f, tb3_2_f, tb3_3_f,
410+
tb4_1_f, tb4_2_f, tb4_3_f, tb4_4_f))
331411
})
332412

333413
object Promotions : Project({

0 commit comments

Comments
 (0)