Repository navigation
fix(ci): overhaul release pipeline, fix versions, add RELEASING.md - #503
Merged
Merged
Conversation
Three changes: 1. Add explicit 'Build type' input that defaults to Snapshot. Release builds require the operator to actively choose 'Release' AND trigger from an N.N branch — releasing from main is rejected. 2. Fix the snapshot detection race from build #75. The old 'Determine if snapshot' step ran inside the build groups (parallel with the build), so is_snapshot could be read before it was set. Now resolved in a single sequential step before any build runs. 3. Add is_snapshot validation in publish-common.sh — fail loudly if the value is missing or garbled rather than silently publishing a release. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
main's product_version was incorrectly set to 1.0.1, which conflicts with the 1.0 maintenance branch where patch releases belong. Bump to 1.1.0. Add RELEASING.md documenting the release process, branch model, and post-release steps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Release builds must be restricted to exact N.N maintenance branches.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Overhauls the release pipeline, updates the main product version to 1.1.0, and documents the release process.
Changes:
- Adds explicit Snapshot/Release selection and sequential metadata resolution.
- Validates snapshot metadata before publishing.
- Adds release and branch-model documentation.
File summaries
| File | Description |
|---|---|
RELEASING.md |
Documents release procedures and branch conventions. |
product_version |
Updates the main development version. |
.buildkite/release-pipeline.yml |
Adds build-type selection and release validation. |
.buildkite/publish/publish-common.sh |
Validates snapshot metadata. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
erikcurrin-elastic
approved these changes
Sep 18, 2026
💔 Failed to create backport PR(s)The backport operation could not be completed due to the following error: The backport PRs will be merged automatically after passing CI. To backport manually run: |
3 tasks
erikcurrin-elastic
added a commit
that referenced
this pull request
Sep 18, 2026
## Summary Fixes a regression introduced in #503 where the outer `if [[ "$BUILD_TYPE" == "release" ]]` guard was accidentally dropped from the "Resolve build type" step. **Bug:** The branch pattern check (`^[0-9]+\.[0-9]+$`) ran unconditionally, so any Snapshot build triggered from `main` would fail immediately with a misleading error: > ERROR: Release builds require an N.N branch (for example, 1.0) **Fix:** Restore the missing `if [[ "$BUILD_TYPE" == "release" ]]; then` wrapper so the branch guard only runs for Release builds. ## Test plan - [ ] Trigger the release pipeline from `main` with default Snapshot settings → confirm SNAPSHOT image published (was broken before this fix) - [ ] Trigger the release pipeline from `main` and choose "Release" → confirm it is rejected - [ ] Trigger the release pipeline from `1.0` with "Release" → confirm release image published 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Jan-Kazlouski-elastic
added a commit
that referenced
this pull request
Oct 5, 2026
The backported #503 bumped product_version from 1.0.1 to 1.1.0. That is correct for main, which tracks the next minor line, but wrong here: the 1.0 branch owns the 1.0.x patch line and the release pipeline reads this file to determine the published image tag.
Jan-Kazlouski-elastic
added a commit
that referenced
this pull request
Oct 5, 2026
….md (#503) (#510) Backports the following commits to 1.0: - fix(ci): overhaul release pipeline, fix versions, add RELEASING.md (#503) --------- Co-authored-by: Sean Story <sean.j.story@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Erik Currin <erik.currin@elastic.co> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: “Jan-Kazlouski-elastic“ <jan.kazlouski@elastic.co>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release pipeline rewrite (
.buildkite/release-pipeline.yml)is_snapshotcould be read before it was set. Now resolved in a single sequential step before any build runs.publish-common.sh— fails loudly ifis_snapshotis missing or garbled.Version fix
product_versiononmainfrom1.0.1→1.1.0. The1.0.xversion numbers belong on the1.0maintenance branch.Documentation
RELEASING.mddocumenting the release process, branch model, and post-release checklist.Test plan
mainwith default settings → confirm SNAPSHOT image publishedmainand choose "Release" → confirm it is rejected1.0with "Snapshot" → confirm SNAPSHOT image published1.0with "Release" → confirm release image publishedCo-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
🤖 Generated with Claude Code