Skip to content

Commit c118ab9

Browse files
committed
Add forwards compatibility testing CI pipeline
(cherry picked from commit 6b1a6f7)
1 parent 6117925 commit c118ab9

File tree

5 files changed

+58
-4
lines changed

5 files changed

+58
-4
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
steps:
2+
- label: $FWC_VERSION / fwc
3+
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v$FWC_VERSION#fwcTest -Dtests.bwc.snapshot=false
4+
timeout_in_minutes: 300
5+
agents:
6+
provider: gcp
7+
image: family/elasticsearch-ubuntu-2004
8+
machineType: n1-standard-32
9+
buildDirectory: /dev/shm/bk
10+
preemptible: true
11+
matrix:
12+
setup:
13+
FWC_VERSION: $FWC_LIST
14+
env:
15+
FWC_VERSION: $FWC_VERSION
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# This file is auto-generated. See .buildkite/pipelines/periodic-fwc.template.yml
2+
steps:
3+
- label: $FWC_VERSION / fwc
4+
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v$FWC_VERSION#fwcTest -Dtests.bwc.snapshot=false
5+
timeout_in_minutes: 300
6+
agents:
7+
provider: gcp
8+
image: family/elasticsearch-ubuntu-2004
9+
machineType: n1-standard-32
10+
buildDirectory: /dev/shm/bk
11+
preemptible: true
12+
matrix:
13+
setup:
14+
FWC_VERSION: []
15+
env:
16+
FWC_VERSION: $FWC_VERSION

.buildkite/scripts/branches.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22

33
# This determines which branches will have pipelines triggered periodically, for dra workflows.
44
BRANCHES=( $(cat branches.json | jq -r '.branches[].branch') )
5+
6+
# Sort them to make ordering predictable
7+
IFS=$'\n' BRANCHES=($(sort <<<"${BRANCHES[*]}"))
8+
unset IFS

.buildkite/scripts/periodic.trigger.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,15 @@ EOF
4646
branch: "$BRANCH"
4747
commit: "$LAST_GOOD_COMMIT"
4848
EOF
49+
# Include forward compatibility tests only for the bugfix branch
50+
if [[ "${BRANCH}" == "${BRANCHES[2]}" ]]; then
51+
cat <<EOF
52+
- trigger: elasticsearch-periodic-fwc
53+
label: Trigger periodic-fwc pipeline for $BRANCH
54+
async: true
55+
build:
56+
branch: "$BRANCH"
57+
commit: "$LAST_GOOD_COMMIT"
58+
EOF
59+
fi
4960
done

build.gradle

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
1515

1616
import org.elasticsearch.gradle.DistributionDownloadPlugin
1717
import org.elasticsearch.gradle.Version
18+
import org.elasticsearch.gradle.VersionProperties
1819
import org.elasticsearch.gradle.internal.BaseInternalPluginBuildPlugin
1920
import org.elasticsearch.gradle.internal.ResolveAllDependencies
2021
import org.elasticsearch.gradle.util.GradleUtils
@@ -120,10 +121,10 @@ tasks.register("updateCIBwcVersions") {
120121
outputFile.text = "# This file is auto-generated. See ${pipelineTemplatePath}\n" + pipeline
121122
}
122123

123-
// Writes a Buildkite pipelime from a template, and replaces $BWC_LIST with an array of versions
124+
// Writes a Buildkite pipelime from a template, and replaces a variable with an array of versions
124125
// Useful for writing a list of versions in a matrix configuration
125-
def expandBwcList = { String outputFilePath, String pipelineTemplatePath, List<Version> versions ->
126-
writeBuildkitePipeline(outputFilePath, pipelineTemplatePath, [new ListExpansion(versions: versions, variable: "BWC_LIST")])
126+
def expandList = { String outputFilePath, String pipelineTemplatePath, String variable, List<Version> versions ->
127+
writeBuildkitePipeline(outputFilePath, pipelineTemplatePath, [new ListExpansion(versions: versions, variable: variable)])
127128
}
128129

129130
// Writes a Buildkite pipeline from a template, and replaces $BWC_STEPS with a list of steps, one for each version
@@ -140,11 +141,18 @@ tasks.register("updateCIBwcVersions") {
140141
doLast {
141142
writeVersions(file(".ci/bwcVersions"), filterIntermediatePatches(buildParams.bwcVersions.indexCompatible))
142143
writeVersions(file(".ci/snapshotBwcVersions"), filterIntermediatePatches(buildParams.bwcVersions.unreleasedIndexCompatible))
143-
expandBwcList(
144+
expandList(
144145
".buildkite/pipelines/intake.yml",
145146
".buildkite/pipelines/intake.template.yml",
147+
"BWC_LIST",
146148
filterIntermediatePatches(buildParams.bwcVersions.unreleasedIndexCompatible)
147149
)
150+
expandList(
151+
".buildkite/pipelines/periodic-fwc.yml",
152+
".buildkite/pipelines/periodic-fwc.template.yml",
153+
"FWC_LIST",
154+
buildParams.bwcVersions.released.findAll { it.major == VersionProperties.elasticsearchVersion.major && it.minor == VersionProperties.elasticsearchVersion.minor }
155+
)
148156
writeBuildkitePipeline(
149157
".buildkite/pipelines/periodic.yml",
150158
".buildkite/pipelines/periodic.template.yml",

0 commit comments

Comments
 (0)