Skip to content

Commit 06532e6

Browse files
breskebyjulian-elastic
authored andcommitted
Split up bc and pr upgrade tests (elastic#129756)
Splits up bc and pr upgrade tests as they tend to be a bottle neck in intake and pr builds nowadays.
1 parent 21c8ab0 commit 06532e6

File tree

3 files changed

+57
-113
lines changed

3 files changed

+57
-113
lines changed

.buildkite/scripts/run-bc-upgrade-tests.sh

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,17 @@ echo "Running BC upgrade tests on $BUILDKITE_BRANCH [$BC_VERSION] using BC (or s
5656

5757
cat <<EOF | buildkite-agent pipeline upload
5858
steps:
59-
- label: bc-upgrade $BC_BUILD_ID -> $BUILDKITE_BRANCH
60-
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${BC_VERSION} -Dtests.bwc.refspec.main=${BC_COMMIT_HASH} bcUpgradeTest -Dtests.jvm.argline="-Des.serverless_transport=true"
61-
timeout_in_minutes: 300
62-
agents:
63-
provider: gcp
64-
image: family/elasticsearch-ubuntu-2004
65-
machineType: n1-standard-32
66-
buildDirectory: /dev/shm/bk
67-
preemptible: true
68-
retry:
69-
automatic:
70-
- exit_status: "-1"
71-
limit: 3
72-
signal_reason: none
73-
- signal_reason: agent_stop
74-
limit: 3
59+
- group: "bc-upgrade $BC_BUILD_ID -> $BUILDKITE_BRANCH"
60+
steps:
61+
- label: "bc-upgrade-tests-part{{matrix.PART}}"
62+
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${BC_VERSION} -Dtests.bwc.refspec.main=${BC_COMMIT_HASH} bcUpgradeTestPart{{matrix.PART}} -Dtests.jvm.argline="-Des.serverless_transport=true"
63+
timeout_in_minutes: 300
64+
agents:
65+
provider: gcp
66+
image: family/elasticsearch-ubuntu-2004
67+
machineType: n1-standard-32
68+
buildDirectory: /dev/shm/bk
69+
matrix:
70+
setup:
71+
PART: ["1", "2", "3", "4", "5", "6"]
7572
EOF

.buildkite/scripts/run-pr-upgrade-tests.sh

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,19 @@ VERSION=$(sed -n 's/^elasticsearch[[:space:]]*=[[:space:]]*\(.*\)/\1/p' build-to
2424

2525
echo "Running PR upgrade tests from $BUILDKITE_PULL_REQUEST_BASE_BRANCH [$BASE_COMMIT] to $BUILDKITE_BRANCH [$BUILDKITE_COMMIT]."
2626

27-
cat <<EOF | buildkite-agent pipeline upload
27+
cat << EOF | buildkite-agent pipeline upload
2828
steps:
29-
- label: pr-upgrade $BUILDKITE_PULL_REQUEST_BASE_BRANCH -> $BUILDKITE_BRANCH
30-
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${VERSION}-SNAPSHOT -Dtests.bwc.refspec.main=${BASE_COMMIT} bcUpgradeTest -Dtests.jvm.argline="-Des.serverless_transport=true"
31-
timeout_in_minutes: 300
32-
agents:
33-
provider: gcp
34-
image: family/elasticsearch-ubuntu-2004
35-
machineType: n1-standard-32
36-
buildDirectory: /dev/shm/bk
37-
preemptible: true
38-
retry:
39-
automatic:
40-
- exit_status: "-1"
41-
limit: 3
42-
signal_reason: none
43-
- signal_reason: agent_stop
44-
limit: 3
29+
- group: "pr-upgrade $BUILDKITE_PULL_REQUEST_BASE_BRANCH -> $BUILDKITE_BRANCH"
30+
steps:
31+
- label: "pr-upgrade-part-{{matrix.PART}}"
32+
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true -Dorg.elasticsearch.build.cache.push=true -Dignore.tests.seed -Dscan.capture-file-fingerprints -Dtests.bwc.main.version=${VERSION}-SNAPSHOT -Dtests.bwc.refspec.main=${BASE_COMMIT} bcUpgradeTestPart{{matrix.PART}} -Dtests.jvm.argline="-Des.serverless_transport=true"
33+
timeout_in_minutes: 300
34+
agents:
35+
provider: gcp
36+
image: family/elasticsearch-ubuntu-2004
37+
machineType: n1-standard-32
38+
buildDirectory: /dev/shm/bk
39+
matrix:
40+
setup:
41+
PART: ["1", "2", "3", "4", "5", "6"]
4542
EOF

build.gradle

Lines changed: 30 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -351,95 +351,45 @@ allprojects {
351351
}
352352
}
353353

354+
def splitForCI = { proj, partString ->
355+
proj.tasks.register("check$partString") {
356+
dependsOn 'check'
357+
withReleaseBuild {
358+
dependsOn 'assemble'
359+
}
360+
}
361+
362+
proj.tasks.addRule("Pattern: v<BWC_VERSION>#bwcTest$partString") { name ->
363+
if(name.endsWith("#bwcTest$partString")) {
364+
proj.project.getTasks().register(name) {
365+
task -> task.dependsOn(proj.tasks.named { tskName -> tskName == (name - partString) })
366+
}
367+
}
368+
}
369+
370+
proj.tasks.register("bcUpgradeTest$partString") {
371+
dependsOn tasks.matching { it.name == 'bcUpgradeTest' }
372+
withReleaseBuild {
373+
dependsOn 'assemble'
374+
}
375+
}
376+
}
377+
354378
plugins.withId('lifecycle-base') {
355379
if (project.path.startsWith(":x-pack:")) {
356380
if (project.path.contains("security") || project.path.contains(":ml")) {
357-
tasks.register('checkPart4') {
358-
dependsOn 'check'
359-
withReleaseBuild {
360-
dependsOn 'assemble'
361-
}
362-
}
363-
364-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart4") { name ->
365-
if(name.endsWith("#bwcTestPart4")) {
366-
project.getTasks().register(name) {
367-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part4") })
368-
}
369-
}
370-
}
381+
splitForCI(project, "Part4")
371382
} else if (project.path == ":x-pack:plugin" || project.path.contains("ql") || project.path.contains("smoke-test")) {
372-
tasks.register('checkPart3') {
373-
dependsOn 'check'
374-
withReleaseBuild {
375-
dependsOn 'assemble'
376-
}
377-
}
378-
379-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart3") { name ->
380-
if(name.endsWith("#bwcTestPart3")) {
381-
project.getTasks().register(name) {
382-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part3") })
383-
}
384-
}
385-
}
383+
splitForCI(project, "Part3")
386384
} else if (project.path.contains("multi-node")) {
387-
tasks.register('checkPart5') {
388-
dependsOn 'check'
389-
withReleaseBuild {
390-
dependsOn 'assemble'
391-
}
392-
}
393-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart5") { name ->
394-
if(name.endsWith("#bwcTestPart5")) {
395-
project.getTasks().register(name) {
396-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part5") })
397-
}
398-
}
399-
}
385+
splitForCI(project, "Part5")
400386
} else {
401-
tasks.register('checkPart2') {
402-
dependsOn 'check'
403-
withReleaseBuild {
404-
dependsOn 'assemble'
405-
}
406-
}
407-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart2") { name ->
408-
if(name.endsWith("#bwcTestPart2")) {
409-
project.getTasks().register(name) {
410-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part2") })
411-
}
412-
}
413-
}
387+
splitForCI(project, "Part2")
414388
}
415389
} else if(project.path.startsWith(":qa:")) {
416-
tasks.register('checkPart6') {
417-
dependsOn 'check'
418-
withReleaseBuild {
419-
dependsOn 'assemble'
420-
}
421-
}
422-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart6") { name ->
423-
if(name.endsWith("#bwcTestPart6")) {
424-
project.getTasks().register(name) {
425-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part6") })
426-
}
427-
}
428-
}
390+
splitForCI(project, "Part6")
429391
} else {
430-
tasks.register('checkPart1') {
431-
dependsOn 'check'
432-
withReleaseBuild {
433-
dependsOn 'assemble'
434-
}
435-
}
436-
tasks.addRule("Pattern: v<BWC_VERSION>#bwcTestPart1") { name ->
437-
if(name.endsWith("#bwcTestPart1")) {
438-
project.getTasks().register(name) {
439-
task -> task.dependsOn(tasks.named { tskName -> tskName == (name - "Part1") })
440-
}
441-
}
442-
}
392+
splitForCI(project, "Part1")
443393
}
444394
tasks.register('functionalTests') {
445395
dependsOn 'check'

0 commit comments

Comments
 (0)