[CI] Add features/* branch support to changeset detection and publish pipeline#18962
Conversation
…ions pipeline Extend CI branch handling to treat feature/* branches the same as backport-* branches: - common.sh: fix dead-code bug in get_from_changeset and get_to_changeset where the outer guard only matched main/backport-*, making the inner feature/ check unreachable. Unified both guards to ^(backport-|feature/) and use BUILDKITE_COMMIT as the diff base on the first push of a new feature/* branch, consistent with backport behaviour. - catalog-info.yaml: add feature/* to the integrations pipeline branch_configuration and intermediate-build filters so feature/* branches trigger CI builds and benefit from build cancellation/ skipping. Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Update docs/ci_pipelines.md to include feature/* branches: - Add feature/* to the pipeline trigger description and the build-cancellation and changeset-detection bullet points. - Add a new "Feature branches" section explaining that changes are integrated via Pull Requests with CI checks, that changeset detection follows the same logic as backport-* branches, and that publishing is restricted to main and backport-* only. Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
✅ Vale Linting ResultsNo issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
🔍 Preview links for changed docs |
🚀 Benchmarks reportTo see the full report comment with |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Extract the repeated `^(backport-|feature/)` regex into a single readonly LONG_RUNNING_BRANCH_PATTERN constant, replacing three inline occurrences in common.sh. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TL;DRThe failed jobs are not failing in package code/tests; they are failing in Buildkite infrastructure hooks before tests start. Immediate action: re-run the build, and if it fails again, investigate agent egress/auth connectivity to AWS STS and GitHub. Remediation
Investigation detailsRoot CauseAll 6 failures occur before integration tests run, in CI setup hooks/plugins:
Relevant code paths confirm these failures happen in pipeline infra steps, not package logic:
The PR commit itself only touched:
No evidence these changes caused the observed hook-level network/auth timeouts. Evidence
Verification
Follow-upIf a retry still fails with the same errors, escalate to CI/platform owners with this build URL and the two failing surfaces ( Note 🔒 Integrity filter blocked 7 itemsThe following items were blocked because they don't meet the GitHub integrity level.
To allow these resources, lower tools:
github:
min-integrity: approved # merged | approved | unapproved | noneWhat is this? | From workflow: PR Buildkite Detective Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
Proposed commit message
WHAT
Extends CI branch handling to treat
feature/*branches the same asbackport-*branches in two places:common.sh—get_from_changeset/get_to_changesetmainandbackport-*, making the innerfeature/check insideget_from_changesetunreachable (dead code) —feature/*branches never entered the block.^(backport-|feature/)sofeature/*branches benefit from the same previous-successful-commit logic.feature/*branch (no previous successful build),fromis set toBUILDKITE_COMMITrather thanorigin/${BUILDKITE_BRANCH}^, avoiding spurious full-repo diffs that would trigger unnecessary package testing.catalog-info.yaml—integrationspipelinebranch_configurationextended from"main backport-*"to"main backport-* feature/*"so the integrations pipeline is triggered forfeature/*branches.cancel_intermediate_builds_branch_filterandskip_intermediate_builds_branch_filterupdated to include!feature/*so intermediate builds onfeature/*branches are properly cancelled/skipped, consistent withmainandbackport-*.docs/ci_pipelines.mdfeature/*alongsidemainandbackport-*.backport-*branches, and that publishing is restricted tomainandbackport-*only.WHY
feature/*branches are used for long-lived feature development that requires the same CI protections asbackport-*branches: accurate changeset detection against a baseline and CI build triggering. Theintegrations-publishpipeline intentionally remains restricted tomainandbackport-*branches only.Author's Checklist
feature/*branches were previously excluded from theget_from_changeset/get_to_changesetlogic (dead code — inner check was unreachable)integrations-publishpipeline does NOT trigger onfeature/*branchesdocs/ci_pipelines.mdto document the newfeature/*branch workflow