From 2d23d5c001aa4297eab9a98f08d4084712054ad2 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 8 Sep 2025 14:11:54 -0700 Subject: [PATCH 1/6] Test adding a new transport version --- .../scripts/update-transport-versions.sh | 36 +++++++++++++++++++ .../xpack/ccr/CCRInfoTransportAction.java | 1 + 2 files changed, 37 insertions(+) create mode 100755 .buildkite/scripts/update-transport-versions.sh diff --git a/.buildkite/scripts/update-transport-versions.sh b/.buildkite/scripts/update-transport-versions.sh new file mode 100755 index 0000000000000..ae553f778594b --- /dev/null +++ b/.buildkite/scripts/update-transport-versions.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +if [[ -z "${BUILDKITE_PULL_REQUEST:-}" ]]; then + echo "Not a pull request, skipping transport version update" + exit 0 +fi + +if ! git diff --exit-code; then + echo "Changes are present before updating transport versions, not running" + git status + exit 0 +fi + +NEW_COMMIT_MESSAGE="[CI] Update transport versions" + +echo "--- Generating updated transport version definitions" +.ci/scripts/run-gradle.sh generateTransportVersionDefinition + +if git diff --exit-code; then + echo "No changes found after updating transport versions. Don't need to auto commit." + exit 0 +fi + +git config --global user.name elasticsearchmachine +git config --global user.email 'infra-root+elasticsearchmachine@elastic.co' + +gh pr checkout "${BUILDKITE_PULL_REQUEST}" +git add -u . +git commit -m "$NEW_COMMIT_MESSAGE" +git push + +# After the git push, the new commit will trigger a new build within a few seconds and this build should get cancelled +# So, let's just sleep to give the build time to cancel itself without an error +# If it doesn't get cancelled for some reason, then exit with an error, because we don't want this build to be green (we just don't want it to generate an error either) +sleep 300 +exit 1 diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java index 6a7d6464a6826..fb32745b4adc6 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java @@ -29,6 +29,7 @@ public class CCRInfoTransportAction extends XPackInfoFeatureTransportAction { private final boolean enabled; private final XPackLicenseState licenseState; + private final TransportVersion transportVersion = TransportVersion.fromName("my-transport-version"); @Inject public CCRInfoTransportAction( From 135cf24a19d702c6034c5f894724c4711737a5e9 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 8 Sep 2025 16:20:18 -0700 Subject: [PATCH 2/6] Pass appropriate backport branches to generation task --- .../pull-request-transport-versions.yml | 11 ++++++++++- .../scripts/update-transport-versions.sh | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.buildkite/pipelines/pull-request-transport-versions.yml b/.buildkite/pipelines/pull-request-transport-versions.yml index c8030c3bbc887..d4d3ecc12898d 100644 --- a/.buildkite/pipelines/pull-request-transport-versions.yml +++ b/.buildkite/pipelines/pull-request-transport-versions.yml @@ -1 +1,10 @@ -steps: [] +steps: + - label: update-transport-versions + command: '.buildkite/scripts/update-transport-versions.sh' + # New transport versions are always added via the main branch + if: build.env('BUILDKITE_PULL_REQUEST_BASE_BRANCH') == 'main' + agents: + provider: gcp + image: family/elasticsearch-ubuntu-2404 + machineType: custom-16-32768 + buildDirectory: /dev/shm/bk diff --git a/.buildkite/scripts/update-transport-versions.sh b/.buildkite/scripts/update-transport-versions.sh index ae553f778594b..85fd31bb0b932 100755 --- a/.buildkite/scripts/update-transport-versions.sh +++ b/.buildkite/scripts/update-transport-versions.sh @@ -11,10 +11,24 @@ if ! git diff --exit-code; then exit 0 fi -NEW_COMMIT_MESSAGE="[CI] Update transport versions" +NEW_COMMIT_MESSAGE="[CI] Update transport version definitions" echo "--- Generating updated transport version definitions" -.ci/scripts/run-gradle.sh generateTransportVersionDefinition +# Calculate backport branches based on pull request version labels +backport_branches=$( + echo "${GITHUB_PR_LABELS}" \ + | tr ',' '\n' \ + | grep -E "v[0-9]+\.[0-9]+\.[0-9]+" \ + | sed -E 's/^v([0-9]+)\.([0-9]+)\.[0-9]+$/\1.\2/' \ + | paste -sd, - +) + +if [[ -z "${backport_branches}" ]]; then + echo "Skipping as pull request contains no version labels" + exit 0 +fi + +.ci/scripts/run-gradle.sh generateTransportVersionDefinition --backport_branches="${backport_branches}" if git diff --exit-code; then echo "No changes found after updating transport versions. Don't need to auto commit." From 945af3d3d256c1fc55b79cecc76ba81037e5d653 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 8 Sep 2025 16:28:15 -0700 Subject: [PATCH 3/6] Fix cli option --- .buildkite/scripts/update-transport-versions.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.buildkite/scripts/update-transport-versions.sh b/.buildkite/scripts/update-transport-versions.sh index 85fd31bb0b932..045744669c19e 100755 --- a/.buildkite/scripts/update-transport-versions.sh +++ b/.buildkite/scripts/update-transport-versions.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -euo pipefail if [[ -z "${BUILDKITE_PULL_REQUEST:-}" ]]; then echo "Not a pull request, skipping transport version update" @@ -28,7 +29,7 @@ if [[ -z "${backport_branches}" ]]; then exit 0 fi -.ci/scripts/run-gradle.sh generateTransportVersionDefinition --backport_branches="${backport_branches}" +.ci/scripts/run-gradle.sh generateTransportVersionDefinition --backport-branches="${backport_branches}" if git diff --exit-code; then echo "No changes found after updating transport versions. Don't need to auto commit." From d83a4a1ef3ce9efb719005cdf13f896b64003910 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Mon, 8 Sep 2025 16:40:33 -0700 Subject: [PATCH 4/6] Make sure we add new files as well --- .buildkite/scripts/update-transport-versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/scripts/update-transport-versions.sh b/.buildkite/scripts/update-transport-versions.sh index 045744669c19e..e9faad20a7d6f 100755 --- a/.buildkite/scripts/update-transport-versions.sh +++ b/.buildkite/scripts/update-transport-versions.sh @@ -40,7 +40,7 @@ git config --global user.name elasticsearchmachine git config --global user.email 'infra-root+elasticsearchmachine@elastic.co' gh pr checkout "${BUILDKITE_PULL_REQUEST}" -git add -u . +git add -A . git commit -m "$NEW_COMMIT_MESSAGE" git push From 66e85d3ac4f36165d644af710eb59cfddbecf49c Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Tue, 9 Sep 2025 12:32:35 -0700 Subject: [PATCH 5/6] Remove transport definition --- .../java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java index fb32745b4adc6..6a7d6464a6826 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/CCRInfoTransportAction.java @@ -29,7 +29,6 @@ public class CCRInfoTransportAction extends XPackInfoFeatureTransportAction { private final boolean enabled; private final XPackLicenseState licenseState; - private final TransportVersion transportVersion = TransportVersion.fromName("my-transport-version"); @Inject public CCRInfoTransportAction( From 52e423235956025adafdbd9b9eb0c3adf3d66fcf Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 08:48:07 -0700 Subject: [PATCH 6/6] Update task name --- .buildkite/scripts/update-transport-versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/scripts/update-transport-versions.sh b/.buildkite/scripts/update-transport-versions.sh index e9faad20a7d6f..c3ae067f9ce9a 100755 --- a/.buildkite/scripts/update-transport-versions.sh +++ b/.buildkite/scripts/update-transport-versions.sh @@ -29,7 +29,7 @@ if [[ -z "${backport_branches}" ]]; then exit 0 fi -.ci/scripts/run-gradle.sh generateTransportVersionDefinition --backport-branches="${backport_branches}" +.ci/scripts/run-gradle.sh generateTransportVersion --backport-branches="${backport_branches}" if git diff --exit-code; then echo "No changes found after updating transport versions. Don't need to auto commit."