Summary
Following the work done in #19280 (which wired .buildkite/version_bump_pipeline.yml to trigger bump-logstash.yml for patch releases), we now want to implement the equivalent automation for minor releases.
The release process for minor releases is currently documented in the logstash-release-checklist-minor.md template. The goal of this issue is to automate the steps up to (and including) the Week before release section — specifically the steps that involve opening pull requests — and to wire the new action into the Buildkite version bump pipeline.
Tasks
1. Create the bump-minor-logstash.yml GitHub Action
Create a new GitHub Actions workflow file at .github/workflows/bump-minor-logstash.yml that automates the PR-creation steps described in the minor release checklist up to (but not including) the Week before release section.
The action should automate the following steps:
Before feature freeze
- Open a PR against the release branch to check and unpin any active pins in the Logstash gemspec or Gemfile if needed.
- Open a PR to create the new release branch (e.g.
9.1) on elastic/logstash and elastic/logstash-docs. (Skip if this is the last minor version in a major.)
- Open a PR to update
versions.yml on main to the next minor (e.g. 9.0.0 → 9.1.0).
- Open a PR to add a new bundler lock file (e.g.
Gemfile.jruby-<Ruby-version>.lock.release) to the release branch:
- Copy lock file from previous minor branch.
- Update the lock file via
./gradlew clean installDefaultGems and ./vendor/jruby/bin/jruby -S bundle update --all --strict.
After feature freeze
- Open a PR to update
versions.yml on main to the latest minor, if applicable.
Note: Steps that are purely manual (e.g., QA testing, doc coordination, DRA monitoring, Slack notifications) should not be automated. The action should only create pull requests and stop there.
2. Wire the new action into .buildkite/version_bump_pipeline.yml
Update .buildkite/version_bump_pipeline.yml to add a new step that triggers bump-minor-logstash.yml when WORKFLOW == "minor", analogous to the existing patch step:
- label: "Bump version minor"
if: build.env("WORKFLOW") == "minor"
plugins:
- elastic/vault-github-token#v0.1.0:
- elastic/gh-cli#v0.1.1:
version: "2.88.1"
wait: true
workflow-file: "bump-minor-logstash.yml"
workflow-ref: "main"
workflow-inputs:
logstash-version: "${NEW_VERSION}"
logstash-branch: "${BRANCH}"
References
Summary
Following the work done in #19280 (which wired
.buildkite/version_bump_pipeline.ymlto triggerbump-logstash.ymlfor patch releases), we now want to implement the equivalent automation for minor releases.The release process for minor releases is currently documented in the logstash-release-checklist-minor.md template. The goal of this issue is to automate the steps up to (and including) the
Week before releasesection — specifically the steps that involve opening pull requests — and to wire the new action into the Buildkite version bump pipeline.Tasks
1. Create the
bump-minor-logstash.ymlGitHub ActionCreate a new GitHub Actions workflow file at
.github/workflows/bump-minor-logstash.ymlthat automates the PR-creation steps described in the minor release checklist up to (but not including) theWeek before releasesection.The action should automate the following steps:
Before feature freeze
9.1) onelastic/logstashandelastic/logstash-docs. (Skip if this is the last minor version in a major.)versions.ymlonmainto the next minor (e.g.9.0.0→9.1.0).Gemfile.jruby-<Ruby-version>.lock.release) to the release branch:./gradlew clean installDefaultGemsand./vendor/jruby/bin/jruby -S bundle update --all --strict.After feature freeze
versions.ymlonmainto the latest minor, if applicable.2. Wire the new action into
.buildkite/version_bump_pipeline.ymlUpdate
.buildkite/version_bump_pipeline.ymlto add a new step that triggersbump-minor-logstash.ymlwhenWORKFLOW == "minor", analogous to the existingpatchstep:References
bump-logstash.ymlaction (reference for pattern): https://github.com/elastic/logstash/actions/workflows/bump-logstash.yml