Skip to content

Commit 4de7de0

Browse files
authored
Merge branch '9.0' into build/jdk24_rc_default
2 parents b6f470f + 41aa167 commit 4de7de0

File tree

78 files changed

+887
-287
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+887
-287
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: "{{matrix.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: "{{matrix.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
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
import org.elasticsearch.gradle.VersionProperties
11+
import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
12+
13+
def fwcVersions = buildParams.bwcVersions.released.findAll { it.major == VersionProperties.elasticsearchVersion.major && it.minor == VersionProperties.elasticsearchVersion.minor }
14+
def previousMinorSnapshot = buildParams.bwcVersions.unreleased.find { it.major == VersionProperties.elasticsearchVersion.major && it.minor == VersionProperties.elasticsearchVersion.minor - 1 }
15+
16+
fwcVersions.each { fwcVersion ->
17+
tasks.register("v${fwcVersion}#fwcTest", StandaloneRestIntegTestTask) {
18+
usesBwcDistribution(previousMinorSnapshot)
19+
usesBwcDistribution(fwcVersion)
20+
systemProperty("tests.old_cluster_version", previousMinorSnapshot)
21+
systemProperty("tests.new_cluster_version", fwcVersion)
22+
nonInputProperties.systemProperty 'tests.fwc', 'true'
23+
}
24+
}
25+
26+
gradle.taskGraph.whenReady { graph ->
27+
if (graph.allTasks.any { it.name.endsWith('#fwcTest') } && Boolean.parseBoolean(System.getProperty("tests.bwc.snapshot", "true"))) {
28+
throw new GradleException("Running forward compatibility tests requires passing `-Dtests.bwc.snapshot=false`.")
29+
}
30+
31+
if (graph.allTasks.any { it.name.endsWith('#fwcTest') } && graph.allTasks.any { it.name.endsWith('#bwcTest') }) {
32+
throw new GradleException("Backward compatibility and forward compatibility tests cannot be executed in the same build.")
33+
}
34+
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcSetupExtension.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,14 @@ public void execute(Task task) {
145145
loggedExec.args("-DisCI");
146146
}
147147

148-
loggedExec.args("-Dbuild.snapshot=true", "-Dscan.tag.NESTED");
148+
loggedExec.args("-Dscan.tag.NESTED");
149+
150+
if (System.getProperty("tests.bwc.snapshot", "true").equals("false")) {
151+
loggedExec.args("-Dbuild.snapshot=false", "-Dlicense.key=x-pack/plugin/core/snapshot.key");
152+
} else {
153+
loggedExec.args("-Dbuild.snapshot=true");
154+
}
155+
149156
final LogLevel logLevel = project.getGradle().getStartParameter().getLogLevel();
150157
List<LogLevel> nonDefaultLogLevels = Arrays.asList(LogLevel.QUIET, LogLevel.WARN, LogLevel.INFO, LogLevel.DEBUG);
151158
if (nonDefaultLogLevels.contains(logLevel)) {

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/DockerBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public enum DockerBase {
2222
// Chainguard based wolfi image with latest jdk
2323
// This is usually updated via renovatebot
2424
// spotless:off
25-
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:d74b1fda6b7fee2c90b410df258e005c049e0672fe16d79d00e58f14fb69f90b",
25+
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:c66fdafe581a6ab1668a962015de4ce4666a60ed601d24f019f03bb4aaab8eeb",
2626
"-wolfi",
2727
"apk"
2828
),

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPlugin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,9 @@ static void createBuildBwcTask(
355355
String bwcTaskName = buildBwcTaskName(projectName);
356356
bwcSetupExtension.bwcTask(bwcTaskName, c -> {
357357
boolean useNativeExpanded = projectArtifact.expandedDistDir != null;
358+
boolean isReleaseBuild = System.getProperty("tests.bwc.snapshot", "true").equals("false");
358359
File expectedOutputFile = useNativeExpanded
359-
? new File(projectArtifact.expandedDistDir, "elasticsearch-" + bwcVersion.get() + "-SNAPSHOT")
360+
? new File(projectArtifact.expandedDistDir, "elasticsearch-" + bwcVersion.get() + (isReleaseBuild ? "" : "-SNAPSHOT"))
360361
: projectArtifact.distFile;
361362
c.getInputs().file(new File(project.getBuildDir(), "refspec")).withPathSensitivity(PathSensitivity.RELATIVE);
362363
if (useNativeExpanded) {

build-tools-internal/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ log4j = 2.19.0
1414
slf4j = 2.0.6
1515
ecsLogging = 1.2.0
1616
jna = 5.12.1
17-
netty = 4.1.115.Final
17+
netty = 4.1.118.Final
1818
commons_lang3 = 3.9
1919
google_oauth_client = 1.34.1
2020
awsv1sdk = 1.12.746

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)