Repository navigation
Conversation
🚀 Benchmarks reportTo see the full report comment with |
|
Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as |
This licenses folder is used by the environment variable ELASTIC_PACKAGE_REPOSITORY_LICENSE, and it is the same in this branch as the file present in the root of the repository LICENSE.txt
This parameter was not available until elastic-package v0.96.0
c3accea to
5cea34f
Compare
There was a problem hiding this comment.
🟡 Changes recommended
There are confirmed usability/behavior issues in newly added shell tooling (help exit codes, misleading usage/docs, and a couple of malformed echo lines) that should be fixed before relying on these scripts in CI automation.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Syncs CI/configuration and related tooling from main into the backport-kubernetes-1.39 branch so backport-branch automation (GitHub Actions + Buildkite) and associated helper tools exist on the target branch where events occur.
Changes:
- Adds/syncs GitHub Actions workflows (docs validation, Vale lint/report, backport automation triggers, sweepers, Updatecli, etc.) and a composite action for syncing backport changelogs.
- Updates Buildkite pipelines + scripts, including new script unit tests and patterns for determining when to run the full package test matrix.
- Adds/updates Go-based CI tooling under
dev/and introduces a self-containedcmd/backportGo sub-module, plus Go module/tooling dependency updates.
File summaries
| File | Description |
|---|---|
| tools.go | Add tool dependencies for mage and gotestsum under tools build tag. |
| go.mod | Update Go dependencies (semver, ucfg, x/mod, yaml v3, gotestsum) to match main. |
| dev/scripts/README.md | Document purpose/scope of dev/scripts/ and CI impact. |
| dev/scripts/get_release_commit.sh | Add helper script to locate release commit for a package/version. |
| dev/scripts/backport_apply.sh | Add wrapper script around backport apply for CI/local usage. |
| dev/packagenames/packagenames.go | Add package-name uniqueness checker for CI tooling. |
| dev/packagenames/packagenames_test.go | Unit tests for package-name uniqueness checker. |
| dev/packagenames/testdata/no_duplicates/p1/manifest.yml | Test fixture manifest (no-duplicates). |
| dev/packagenames/testdata/no_duplicates/p2/manifest.yml | Test fixture manifest (no-duplicates). |
| dev/packagenames/testdata/duplicates/p1/manifest.yml | Test fixture manifest (duplicates). |
| dev/packagenames/testdata/duplicates/p2/manifest.yml | Test fixture manifest (duplicates). |
| dev/packagenames/testdata/invalid_manifests/p1/manifest.yml | Test fixture manifest (invalid manifests handling). |
| dev/packagenames/testdata/invalid_manifests/p2/manifest.yml | Test fixture manifest (invalid manifests handling). |
| dev/packagenames/testdata/nested/no_duplicates/p3/manifest.yml | Test fixture manifest (nested packages, no-duplicates). |
| dev/packagenames/testdata/nested/no_duplicates/technology/p1/manifest.yml | Test fixture manifest (nested packages, no-duplicates). |
| dev/packagenames/testdata/nested/no_duplicates/technology/p2/manifest.yml | Test fixture manifest (nested packages, no-duplicates). |
| dev/packagenames/testdata/nested/duplicates/p3/manifest.yml | Test fixture manifest (nested packages, duplicates). |
| dev/packagenames/testdata/nested/duplicates/technology/p1/manifest.yml | Test fixture manifest (nested packages, duplicates). |
| dev/packagenames/testdata/nested/duplicates/technology/p2/manifest.yml | Test fixture manifest (nested packages, duplicates). |
| dev/import-beats/variables.go | Switch YAML parsing dependency to gopkg.in/yaml.v3. |
| dev/import-beats/variables_compact.go | Switch YAML parsing dependency to gopkg.in/yaml.v3. |
| dev/import-beats/packages.go | Switch YAML parsing to v3; formatting/idiomatic Go tweaks. |
| dev/import-beats/fields.go | Switch YAML parsing to v3; minor comment/idiom cleanup. |
| dev/import-beats/elasticsearch.go | Switch YAML parsing dependency to gopkg.in/yaml.v3. |
| dev/import-beats/README.md | Fix grammar in documentation. |
| dev/gitutil/git.go | Add small git command helper used by dev tooling. |
| dev/coverage/coverage.go | Add Cobertura XML merge helper (ported from elastic-package). |
| dev/coverage/coverage_test.go | Unit tests for coverage merge helper. |
| dev/coverage/testdata/test-coverage-1.xml | Coverage merge test fixture. |
| dev/coverage/testdata/test-coverage-2.xml | Coverage merge test fixture. |
| dev/coverage/testdata/test-coverage-3.xml | Coverage merge test fixture. |
| dev/coverage/testdata/expected-test-coverage.xml | Expected merged coverage fixture. |
| dev/codeowners/testdata/test_packages/package_1/manifest.yml | Codeowners test fixture manifest. |
| dev/codeowners/testdata/test_packages/package_1/data_stream/stream_1/.keep | Placeholder for stream fixture directory. |
| dev/codeowners/testdata/test_packages/package_1/data_stream/stream_2/.keep | Placeholder for stream fixture directory. |
| dev/codeowners/testdata/nested_packages/package_top/manifest.yml | Codeowners test fixture manifest (nested). |
| dev/codeowners/testdata/nested_packages/category/package_nested_1/manifest.yml | Codeowners test fixture manifest (nested). |
| dev/codeowners/testdata/nested_packages/category/package_nested_2/manifest.yml | Codeowners test fixture manifest (nested). |
| dev/codeowners/testdata/nested_packages/category/package_nested_1/data_stream/stream_1/.keep | Placeholder for nested stream fixture directory. |
| dev/codeowners/testdata/nested_packages/category/package_nested_1/data_stream/stream_2/.keep | Placeholder for nested stream fixture directory. |
| dev/codeowners/testdata/devexp/manifest.yml | Update codeowners fixture manifest fields. |
| dev/codeowners/testdata/CODEOWNERS-streams-valid | CODEOWNERS parsing test fixture (streams). |
| dev/codeowners/testdata/CODEOWNERS-streams-multiple-owners | CODEOWNERS parsing test fixture (multiple owners). |
| dev/codeowners/testdata/CODEOWNERS-streams-missing-owners | CODEOWNERS parsing test fixture (missing owners). |
| dev/codeowners/testdata/CODEOWNERS-owners-trailing-slash | CODEOWNERS parsing test fixture (trailing slash). |
| dev/codeowners/testdata/CODEOWNERS-owners-packages-datastreams | CODEOWNERS parsing test fixture (package/datastream owners). |
| dev/codeowners/testdata/CODEOWNERS-nested-valid | CODEOWNERS parsing test fixture (nested). |
| dev/codeowners/testdata/CODEOWNERS-nested-streams-valid | CODEOWNERS parsing test fixture (nested + streams). |
| dev/codeowners/testdata/CODEOWNERS-nested-streams-missing-owners | CODEOWNERS parsing test fixture (nested missing owners). |
| dev/codeowners/testdata/CODEOWNERS-nested-missing-owner | CODEOWNERS parsing test fixture (nested missing owner). |
| dev/codeowners/testdata/CODEOWNERS-nested-category-owner | CODEOWNERS parsing test fixture (category owner). |
| dev/citools/packages.go | Add package discovery helper used by mage/CI tooling. |
| dev/citools/packagemanifest.go | Add manifest parsing/unpack helpers (go-ucfg based). |
| dev/citools/subscription.go | Add subscription compatibility helper. |
| dev/citools/logsdb.go | Add LogsDB support detection helpers based on kibana constraints. |
| dev/citools/logsdb_test.go | Unit tests for LogsDB helpers. |
| dev/citools/kibana.go | Add Kibana constraint parsing + stack support check. |
| dev/citools/kibana_test.go | Unit tests for Kibana constraint helpers. |
| dev/citools/gomod.go | Add helper to read a dependency version from go.mod. |
| dev/citools/gomod_test.go | Unit tests for go.mod dependency-version helper. |
| cmd/backport/.go-version | Pin Go toolchain version for cmd/backport sub-module. |
| cmd/backport/go.mod | Add self-contained Go sub-module for backport automation tooling. |
| cmd/backport/tools.go | Tool deps for backport sub-module (mage/goimports/go-licenser). |
| cmd/backport/magefile.go | Mage tasks for building/testing/formatting the backport tool. |
| cmd/backport/gitutil/git.go | Local git helper copy for self-contained backport sub-module. |
| cmd/backport/citools/packages.go | Local citools package discovery copy for sub-module. |
| cmd/backport/citools/packagemanifest.go | Local manifest parser copy for sub-module (plus Parse helper). |
| cmd/backport/backports/packages/detect.go | Add package detection from changed file paths for backport flows. |
| cmd/backport/backports/owners/check.go | Add owner mismatch checking for backport owner sync workflows. |
| cmd/backport/backports/owners/check_test.go | Unit tests for owner mismatch helper (dedupTeams). |
| cmd/backport/backports/changelog/resolve.go | Build package name→dir index for changelog tooling. |
| cmd/backport/backports/changelog/resolve_test.go | Tests for package index builder. |
| cmd/backport/backports/changelog/extract.go | Extract changelog entry from unified diff text. |
| cmd/backport/backports/changelog/extract_test.go | Tests for changelog diff extraction. |
| cmd/backport/backports/changelog/insert.go | Insert changelog entry maintaining semver-desc ordering. |
| cmd/backport/backports/changelog/insert_test.go | Tests for changelog insertion logic. |
| cmd/backport/backports/changelog/update.go | Update link: fields inside a specific changelog entry. |
| cmd/backport/backports/changelog/update_test.go | Tests for changelog link updates. |
| cmd/backport/backports/changelog/sync_test.go | Tests for TSV entry parsing and message/title building. |
| cmd/backport/backports/changelog/comment.go | Post results back to PR via gh for changelog sync workflow. |
| .gitignore | Ignore Claude state, scannerwork, and CI venv artifacts. |
| .github/workflows/validate-yaml-dashboards.requirements.txt | Add pinned Python deps for dashboard YAML validation. |
| .github/workflows/validate-package-docs.yml | Add docs-builder validation workflow for package docs changes. |
| .github/workflows/notify-package-docs-failure.yml | Add PR comment notification workflow for docs validation failures. |
| .github/workflows/vale-lint.yml | Add Vale lint workflow for user-facing content. |
| .github/workflows/vale-report.yml | Add Vale report workflow to comment results via workflow_run. |
| .github/workflows/docs-build.yml | Add reusable docs build workflow wiring. |
| .github/workflows/docs-deploy.yml | Add reusable docs deploy workflow wiring. |
| .github/workflows/docs-preview-cleanup.yml | Add reusable docs preview cleanup workflow wiring. |
| .github/workflows/ci-comment.yml | Add PR comment workflow for external contributor Buildkite instructions. |
| .github/workflows/catalog-info.yml | Validate Backstage catalog-info changes on PRs. |
| .github/workflows/bump-elastic-stack-version.yml | Add Updatecli-driven stack version bump automation workflow. |
| .github/workflows/updatecli/values.d/scm.yml | Updatecli values file for SCM owner/repo. |
| .github/workflows/updatecli/updatecli.d/sync-packages-to-bug-issue-template.yml | Updatecli pipeline to sync package list into issue templates. |
| .github/workflows/updatecli/updatecli.d/bump-latest-9x-snapshot-version.yml | Updatecli pipeline for 9.x snapshot updates. |
| .github/workflows/updatecli/updatecli.d/bump-latest-8x-snapshot-version.yml | Updatecli pipeline for 8.x snapshot updates. |
| .github/workflows/updatecli/updatecli.d/bump-latest-7x-version.yml | Updatecli pipeline for 7.x version updates. |
| .github/workflows/requires-update.yml | Add scheduled/manual “requires” update automation workflow. |
| .github/workflows/pr-buildkite-detective.yml | Add workflow to trigger Buildkite detective on failing statuses. |
| .github/workflows/backport-packages-detect.yml | Add workflow to detect touched packages for backport checklists. |
| .github/workflows/trigger-package-tests-security-ml.yml | Add security-ml ITP dispatch trigger workflow for selected packages. |
| .github/workflows/trigger-pr-actions-detective.yml | Add workflow_run integration with PR Actions Detective. |
| .github/workflows/trigger-pr-review.yml | Add (currently disabled) PR Review automation trigger. |
| .github/workflows/trigger-text-auditor.yml | Add (disabled) Text Auditor scheduled workflow trigger. |
| .github/workflows/trigger-stale-issues.yml | Add (disabled) Stale Issues scheduled workflow trigger. |
| .github/workflows/trigger-newbie-contributor-patrol.yml | Add (disabled) Newbie Contributor Patrol trigger. |
| .github/workflows/trigger-mention-in-pr.yml | Add (disabled) mention-in-PR automation trigger. |
| .github/workflows/trigger-mention-in-issue.yml | Add (disabled) mention-in-issue automation trigger. |
| .github/workflows/trigger-issue-triage.yml | Add (disabled) issue triage automation trigger. |
| .github/workflows/trigger-duplicate-issue-detector.yml | Add (disabled) duplicate issue detector trigger. |
| .github/workflows/trigger-docs-patrol.yml | Add (disabled) docs patrol trigger. |
| .github/workflows/trigger-bug-hunter.yml | Add (disabled) bug hunter trigger. |
| .github/workflows/trigger-breaking-change-detector.yml | Add (disabled) breaking change detector trigger with guidance. |
| .github/workflows/sweep-ingest-pipeline-safety.yml | Add (disabled) ingest pipeline safety sweeper workflow. |
| .github/workflows/sweep-httpjson-pagination.yml | Add (disabled) httpjson/CEL pagination sweeper workflow. |
| .github/workflows/sweep-field-mapping-conflicts.yml | Add (disabled) field mapping conflict sweeper workflow. |
| .github/workflows/sweep-dashboard-data-scope.yml | Add (disabled) dashboard data-scope sweeper workflow. |
| .github/actions/sync-backport-changelog/action.yml | Composite action to build/run changelog sync + post PR comment. |
| .buildkite/pull-requests.json | Update Buildkite PR trigger config (allowed bots, skip-only paths, pipelines). |
| .buildkite/pipeline.serverless.yml | Sync serverless pipeline env, plugins, and follow-up reporting steps. |
| .buildkite/pipeline.schedule-daily.yml | Sync daily schedule triggers and gating flags. |
| .buildkite/pipeline.schedule-weekly.yml | Add weekly schedule pipeline. |
| .buildkite/pipeline.publish.yml | Add publish pipeline for building/publishing missing packages. |
| .buildkite/pipeline.backport.yml | Replace placeholder with full backport pipeline definition. |
| .buildkite/pipeline.backport-dispatch.yml | Add dispatch pipeline for validating inventory and creating branches. |
| .buildkite/hooks/post-checkout | Ensure consistent target-branch merge base across long-running PR steps. |
| .buildkite/hooks/pre-exit | Improve teardown behavior (kind deletion/stack down) and cleanup. |
| .buildkite/scripts/trigger_backport.sh | Trigger backport branch creation/dry-run when .backports.yml changes. |
| .buildkite/scripts/test_one_package.sh | Update single-package test runner to use package paths and hooks. |
| .buildkite/scripts/test_integrations_with_serverless.sh | Improve serverless test runner (config download, affected-package selection). |
| .buildkite/scripts/test_helpers.sh | Add shared shell assertion helpers for script unit tests. |
| .buildkite/scripts/test_check_backport_owners.sh | Add unit tests for backport owner-check comment rendering. |
| .buildkite/scripts/run_buildkite_scripts_tests.sh | Add runner to execute shell/python unit tests for CI scripts. |
| .buildkite/scripts/run_dev_scripts_tests.sh | Add runner to execute tests for dev/scripts/. |
| .buildkite/scripts/requirements-ci-python-scripts.txt | Add pinned Python deps for CI python script tests/runtime. |
| .buildkite/scripts/report_issues.sh | Add GitHub issue reporting step for failed tests (via mage). |
| .buildkite/scripts/process_benchmarks.sh | Fix typo in benchmarks script message. |
| .buildkite/scripts/packages/security_detection_engine.sh | Add per-package custom checker for security_detection_engine. |
| .buildkite/scripts/packages/crowdstrike.sh | Add per-package custom checker ensuring generated pipelines stay in sync. |
| .buildkite/scripts/notify_backport_pr.sh | Add PR notification script for backport branch creation outcome. |
| .buildkite/scripts/non_package_patterns.txt | Add pattern manifest used to decide full-matrix vs scoped testing. |
| .buildkite/scripts/check_sources.sh | Run mage check + optional elastic-package links check; verify clean git diff. |
| .buildkite/scripts/check_changelog_versions_in_main.sh | Add check to prevent duplicate changelog versions already in main. |
| .buildkite/scripts/check_backports_inventory.sh | Add schema validation for .backports.yml inventory plus clean-tree check. |
| .buildkite/scripts/check_backport_tool.sh | Add standalone check step for cmd/backport sub-module. |
| .buildkite/scripts/build_packages.sh | Update publish build script to handle skip list and nested package paths. |
| .buildkite/scripts/backport_branch_lib.sh | Add helper functions for backport branch creation flow. |
Review details
Suppressed comments (1)
.buildkite/scripts/test_integrations_with_serverless.sh:73
- There is a stray
.outside the quoted string, so the output becomesMissing "to" changeset .(with an extra space/dot).
- Files reviewed: 173/192 changed files
- Comments generated: 7
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| usage() { | ||
| grep '^#' "$0" | grep -v '#!/' | sed 's/^# \?//' >&2 | ||
| exit 1 | ||
| } | ||
|
|
||
| while [[ $# -gt 0 ]]; do | ||
| case "$1" in | ||
| --sha) sha="$2"; shift 2 ;; | ||
| --package) pkg="$2"; shift 2 ;; | ||
| --target) shift 2 ;; | ||
| --open-pr) open_pr="true"; shift ;; | ||
| --json) as_json="true"; shift ;; | ||
| --dry-run) dry_run="true"; shift ;; | ||
| --remote) remote="$2"; shift 2 ;; | ||
| --repository) repository="$2"; shift 2 ;; | ||
| --packages-dir) packages_dir="$2"; shift 2 ;; | ||
| -h|--help) usage ;; | ||
| *) echo "Unknown option: $1" >&2; usage ;; | ||
| esac | ||
| done |
| git log --oneline \ | ||
| -G "^version: ['\"]?${ESCAPED_VERSION}['\"]?[[:space:]]*$" \ | ||
| -- "$MANIFEST" \ | ||
| | awk 'NF {print $1}' | sort -u | ||
| ) |
| # Patterns for files that, when changed alone, do NOT trigger package tests. | ||
| # One ERE pattern per line. Blank lines and lines starting with # are ignored. | ||
| # This file itself is listed below so editing it does not trigger all tests. |
| if [[ "${from}" == "" ]]; then | ||
| echo "Missing \"from\" changeset". | ||
| exit 1 | ||
| fi |
| # Paths covered by non_package_patterns: must NOT trigger tests | ||
| # --------------------------------------------------------------------------- | ||
| echo "--- pr_has_package_related_files: non-package paths do NOT trigger tests" |
| if epVersion == "" { | ||
| return nil, fmt.Errorf("elastic-package dependency not found") | ||
| } |
| # Finds the commit on main where a package version was released. | ||
| # Usage: ./get_release_commit.sh <package_name> <version> |
There was a problem hiding this comment.
🔵 Needs a closer look
A few newly added utilities have correctness/robustness issues (nil-deref on empty input, Windows path handling, help exit status, curl HTTP error handling) that should be addressed before merging.
Review details
Suppressed comments (3)
Previously missed (3) — in code that hasn't changed since the last review.
.buildkite/scripts/test_integrations_with_serverless.sh:36
- Consider using
curl -fhere so HTTP errors (e.g. 404/500) fail fast; otherwise curl can exit 0 and write an HTML error page that causes confusing downstream failures when parsed as YAML.
cmd/backport/backports/packages/detect.go:42 git diff --name-onlypaths use forward slashes even on Windows; usingfilepath.Separatorhere makesHasPrefixmismatches likely when the tool is run on Windows. Normalize both package roots and input file paths withfilepath.ToSlashand use a literal "/" separator for prefix checks.
dev/citools/subscription.go:25- The local variable
packageSubscriptionshadows the function namepackageSubscription, which makes the code harder to read and grep. Rename the local to something likesubscription.
- Files reviewed: 173/192 changed files
- Comments generated: 0 new
- Review effort level: Lite
|
Changelog sync skipped — all changelog versions are already present on |
…-package v0.79.0 The CI sync (elastic#20542) replaced with_docker_compose (standalone binary installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin installed into ~/.docker/cli-plugins). This caused elastic-package v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2) instead of the pinned version. Docker Compose v2.23+ changed the YAML output of `docker compose config` so that the environment field is serialized as a sequence instead of a map, which elastic-package v0.79.0 cannot unmarshal (map[string]string). Restore with_docker_compose so the pinned standalone binary is placed in BIN_FOLDER (first in PATH) and called before the system version. Call it from test_one_package.sh and test_integrations_with_serverless.sh alongside the existing plugin installation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-package v0.79.0 The CI sync (elastic#20542) replaced with_docker_compose (standalone binary installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin installed into ~/.docker/cli-plugins). This caused elastic-package v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2) instead of the pinned version. Docker Compose v2.23+ changed the YAML output of `docker compose config` so that the environment field is serialized as a sequence instead of a map, which elastic-package v0.79.0 cannot unmarshal (map[string]string). Restore with_docker_compose so the pinned standalone binary is placed in BIN_FOLDER (first in PATH) and called before the system version. Call it from test_one_package.sh and test_integrations_with_serverless.sh alongside the existing plugin installation. Restore the previous docker-compose version v2.17.2 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> fix: add --fail to curl in with_docker_compose to enable retries on HTTP errors Without --fail, curl exits 0 even on 4xx responses, saving the HTML error body silently. This caused the docker-compose binary to contain an HTML page, making it fail at execution time. With --fail, HTTP errors produce a non-zero exit code so retry 5 can kick in properly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ubernetes-1.39 backport branch (#21152) The CI sync (#20542) replaced with_docker_compose (standalone binary installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin installed into ~/.docker/cli-plugins). This caused elastic-package v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2) instead of the pinned version. Docker Compose v2.23+ changed the YAML output of `docker compose config` so that the environment field is serialized as a sequence instead of a map, which elastic-package v0.79.0 cannot unmarshal (map[string]string). Restore with_docker_compose so the pinned standalone binary v2.17.2 is placed in BIN_FOLDER (first in PATH) and called before the system version. Call it from test_one_package.sh and test_integrations_with_serverless.sh alongside the existing plugin installation. fix: detect legacy snapshot.yml in is_stack_created Also check for snapshot.yml (the name used before elastic-package renamed it to docker-compose.yml in May 2024) so the function does not miss a running stack on older installations. --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep CI pipelines, GitHub Actions, and tooling consistent between active backport branches and `main`, so that automated backport workflows and tooling improvements land on all supported branches. * Add shellinit command * Restore variables to manage docker output * Remove --coverage-format parameter This parameter was not available until elastic-package v0.96.0 Also check for snapshot.yml (the name used before elastic-package renamed it to docker-compose.yml in May 2024) so the function does not miss a running stack on older installations. * fix: restore with_docker_compose to pin standalone binary for elastic-package v0.79.0 The CI sync (#20542) replaced with_docker_compose (standalone binary installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin installed into ~/.docker/cli-plugins). This caused elastic-package v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2) instead of the pinned version. Docker Compose v2.23+ changed the YAML output of `docker compose config` so that the environment field is serialized as a sequence instead of a map, which elastic-package v0.79.0 cannot unmarshal (map[string]string). Restore with_docker_compose so the pinned standalone binary is placed in BIN_FOLDER (first in PATH) and called before the system version. Call it from test_one_package.sh and test_integrations_with_serverless.sh alongside the existing plugin installation. Set DOCKER_COMPOSE_VERSION to v2.17.2 * fix: add --fail to curl in with_docker_compose to enable retries on HTTP errors Without --fail, curl exits 0 even on 4xx responses, saving the HTML error body silently. This caused the docker-compose binary to contain an HTML page, making it fail at execution time. With --fail, HTTP errors produce a non-zero exit code so retry 5 can kick in properly. --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Documents the !!seq unmarshal error that affects backport branches using elastic-package < v0.96.0 after the CI sync PR elastic#20542 replaced the standalone docker-compose binary installation with the Docker CLI plugin. Includes root cause explanation and fix steps: revert DOCKER_COMPOSE_VERSION to the pre-sync value in the three pipeline files, restore with_docker_compose in common.sh, and wire it into the test scripts. Links to example commit fbf68eb. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TL;DR
Syncs
.buildkiteand.githubCI configuration frommainto thebackport-kubernetes-1.39backport branch.This brings automated backport workflows, new CI scripts, Go tooling, and
GitHub Actions that only work when they are present on the target branch itself.
Proposed commit message
Author's Checklist
main.Related issues