dra: automate minor release preparation via `bump-minor-logstash.yml` GitHub Action
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) onelastic/logstashandelastic/logstash-docs. (Skip if this is the last minor version in a major.) - Open a PR to update
versions.ymlonmainto 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 installDefaultGemsand./vendor/jruby/bin/jruby -S bundle update --all --strict.
After feature freeze
- Open a PR to update
versions.ymlonmainto 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
- PR that implemented patch release automation: https://github.com/elastic/logstash/pull/19280
- Minor release checklist template: https://github.com/elastic/ingest-dev/blob/main/.github/ISSUE_TEMPLATE/logstash-release-checklist-minor.md
- Current version bump pipeline: https://github.com/elastic/logstash/blob/main/.buildkite/version_bump_pipeline.yml
- Existing
bump-logstash.ymlaction (reference for pattern): https://github.com/elastic/logstash/actions/workflows/bump-logstash.yml
Source: elastic/logstash