Skip to content

Implement automated version bump pipeline for patch and minor releases#262224

Merged
TamerlanG merged 87 commits into
elastic:mainfrom
TamerlanG:feat/dra-bump-pipeline
May 6, 2026
Merged

Implement automated version bump pipeline for patch and minor releases#262224
TamerlanG merged 87 commits into
elastic:mainfrom
TamerlanG:feat/dra-bump-pipeline

Conversation

@TamerlanG
Copy link
Copy Markdown
Contributor

@TamerlanG TamerlanG commented Apr 9, 2026

Summary

Implements a fully automated Buildkite pipeline for Kibana version bumps, supporting both patch and minor release workflows. The steps are based on the release document and talks with @mistic.

What this does

Pipeline orchestration (pipeline.ts)

A dynamic pipeline generator that emits different step sequences depending on the WORKFLOW env var:

Patch workflow:

  1. Trigger ES build and promote
  2. Bump package.json versions + versions.json on the release branch
  3. Trigger DRA snapshot (+ staging if not main)
  4. Update version label color + reconcile PR labels

Minor workflow:

  1. Trigger ES build and promote
  2. Bump package.json versions + versions.json on main
  3. Trigger DRA snapshot (+ staging if not main)
  4. Do changes in the new branch
  5. Notify #mission-control that Kibana has been branched (version bump still pending)
  6. Update release branch config + pipeline resource definitions
  7. Create new release branch off main
  8. Ensure version label exists + reconcile PR labels

New scripts

Script Purpose
bump.sh Entry point that generates and uploads the dynamic pipeline
bump_package_json_versions.sh Bumps package.json and other files on the release branches
bump_versions_json.sh Updates versions.json and backportrc for patch/minor/major releases
create_new_branch_of_main.sh Creates and pushes a new release branch from main
update_release_branch.sh Updates config files on the new release branch
update_pipeline_resource_definitions.sh Updates the Buildkite pipeline resource definitions in main
ensure_version_label.sh Creates the GitHub version label if it doesn't exist
update_label_color.sh Updates the version label color to mark it as current
reconcile_pr_labels.sh Reconciles version labels on open PRs
notify_branch_created.sh Sends a Slack notification to #mission-control when a branch is created
wait_for_pr_merge.sh Utility to poll until an auto-merge PR is merged

Pipeline resource definition

Adds kibana-version-bump Buildkite pipeline resource definition with appropriate team access controls.

Auto-approve workflow

Adds the version bump pipeline to the list of workflows eligible for automatic approval of machine-generated PRs

ES Build

Added step to add ES_SNAPSHOT as metadata to triggered parents job. Got it from: https://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480

Relates to https://github.com/elastic/kibana-operations/issues/486

TamerlanG added 23 commits April 1, 2026 14:35
Orchestrate the complete patch bump pipeline: ES build/promote, package.json
bump PR (targeting release branch), versions.json bump PR (targeting main),
DRA snapshot + staging builds, PR label reconciliation via kibana-operations,
label color update, and Slack notification to #mission-control.
Add the minor/major release workflow to pipeline.ts: ES build on main,
package.json bump PR targeting main, versions.json + .backportrc.json
update, release branch creation, DRA snapshot + staging builds, release
branch config (remove CODEOWNERS, set branch field), and version label
creation. Reuses existing patch steps where applicable.
@TamerlanG TamerlanG self-assigned this Apr 9, 2026
@TamerlanG TamerlanG added release_note:skip Skip the PR/issue when compiling release notes backport:all-open Backport to all branches that could still receive a release labels Apr 9, 2026
Comment thread .buildkite/scripts/steps/version_bump/create_new_branch_of_main.sh Outdated
Comment thread .buildkite/pipelines/version_bump.yml Outdated
Comment thread .buildkite/pipelines/version_bump.yml
TamerlanG and others added 5 commits May 5, 2026 15:42
emitPipeline() runs steps through a Set which collapses identical
'  - wait' lines into one, breaking step ordering. Tag each wait
with a unique trailing comment so the strings differ; Buildkite
ignores YAML comments so runtime behavior is unchanged.
@TamerlanG TamerlanG removed the reviewer:coderabbit PR review with CodeRabbit label May 6, 2026
Copy link
Copy Markdown
Member

@delanni delanni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a follow-up PR, we could try to merge the version bump pipeline steps to a singe pipeline.yml. This usecase doesn't warrant a dynamic pipeline, branches can be described with groups + if properties.

Furthermore, the shell scripts handling git commits and file edits could use some more readability refactors. It's quite hard to follow them through.

@TamerlanG TamerlanG enabled auto-merge (squash) May 6, 2026 15:00
@kibanamachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

✅ unchanged

History

cc @TamerlanG

@TamerlanG TamerlanG merged commit 1e77af4 into elastic:main May 6, 2026
31 checks passed
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.3, 9.4

https://github.com/elastic/kibana/actions/runs/25446319688

@kibanamachine
Copy link
Copy Markdown
Contributor

💔 All backports failed

Status Branch Result
8.19 Backport failed because of merge conflicts
9.3 Backport failed because of merge conflicts

You might need to backport the following PRs to 9.3:
- Bumps @tootallnate/once@2.0.0 → 2.0.1 (#267887)
- test: Fix flaky service map Scout accessibility test (#267960)
- Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/ml-ui files (#267698)
- [ES|QL] FORK now can be run on only one branch (#267712)
9.4 Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 262224

Questions ?

Please refer to the Backport tool documentation

@TamerlanG
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.4

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

@TamerlanG
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.3
8.19

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

ersin-erdal pushed a commit to ersin-erdal/kibana that referenced this pull request May 6, 2026
elastic#262224)

## Summary
Implements a fully automated Buildkite pipeline for Kibana version
bumps, supporting both **patch** and **minor** release workflows. The
steps are based on the [release
document](https://docs.elastic.dev/kibana-team/release) and talks with
@mistic.

## What this does

### Pipeline orchestration (`pipeline.ts`)
A dynamic pipeline generator that emits different step sequences
depending on the `WORKFLOW` env var:

**Patch workflow:**

1. Trigger ES build and promote
2. Bump `package.json` versions + `versions.json` on the release branch
3. Trigger DRA snapshot (+ staging if not `main`)
4. Update version label color + reconcile PR labels

**Minor workflow:**
1. Trigger ES build and promote
2. Bump `package.json` versions + `versions.json` on `main`
3. Trigger DRA snapshot (+ staging if not `main`)
4. Do changes in the new branch
5. Notify `#mission-control` that Kibana has been branched (version bump
still pending)
6. Update release branch config + pipeline resource definitions
8. Create new release branch off `main`
9. Ensure version label exists + reconcile PR labels

### New scripts
| Script | Purpose |
|--------|---------|
| `bump.sh` | Entry point that generates and uploads the dynamic
pipeline |
| `bump_package_json_versions.sh` | Bumps `package.json` and other files
on the release branches |
| `bump_versions_json.sh` | Updates `versions.json` and `backportrc` for
patch/minor/major releases |
| `create_new_branch_of_main.sh` | Creates and pushes a new release
branch from `main` |
| `update_release_branch.sh` | Updates config files on the new release
branch |
| `update_pipeline_resource_definitions.sh` | Updates the Buildkite
pipeline resource definitions in main |
| `ensure_version_label.sh` | Creates the GitHub version label if it
doesn't exist |
| `update_label_color.sh` | Updates the version label color to mark it
as current |
| `reconcile_pr_labels.sh` | Reconciles version labels on open PRs |
| `notify_branch_created.sh` | Sends a Slack notification to
`#mission-control` when a branch is created |
| `wait_for_pr_merge.sh` | Utility to poll until an auto-merge PR is
merged |

### Pipeline resource definition
Adds `kibana-version-bump` Buildkite pipeline resource definition with
appropriate team access controls.

### Auto-approve workflow
Adds the version bump pipeline to the list of workflows eligible for
automatic approval of machine-generated PRs

### ES Build
Added step to add ES_SNAPSHOT as metadata to triggered parents job. Got
it from:
https://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480

Relates to elastic/kibana-operations#486

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Alex Szabo <alex.szabo@elastic.co>
TamerlanG added a commit that referenced this pull request May 7, 2026
…releases (#262224) (#268039)

# Backport

This will backport the following commits from `main` to `8.19`:
- [Implement automated version bump pipeline for patch and minor
releases (#262224)](#262224)

<!--- Backport version: 11.0.2 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Tamerlan
Gudabayev","email":"37669316+TamerlanG@users.noreply.github.com"},"sourceCommit":{"committedDate":"2026-05-06T15:58:23Z","message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.4.0","v9.5.0"],"title":"Implement
automated version bump pipeline for patch and minor
releases","number":262224,"url":"https://github.com/elastic/kibana/pull/262224","mergeCommit":{"message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"9.4","label":"v9.4.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/268018","number":268018,"state":"MERGED","mergeCommit":{"sha":"0488fff0ab550877bcdc1aceff667a43e37825f1","message":"[9.4]
Implement automated version bump pipeline for patch and minor releases
(#262224)
(#268018)"}},{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/262224","number":262224,"mergeCommit":{"message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e"}}]}]
BACKPORT-->
TamerlanG added a commit that referenced this pull request May 8, 2026
…eleases (#262224) (#268037)

# Backport

This will backport the following commits from `main` to `9.3`:
- [Implement automated version bump pipeline for patch and minor
releases (#262224)](#262224)

<!--- Backport version: 11.0.2 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Tamerlan
Gudabayev","email":"37669316+TamerlanG@users.noreply.github.com"},"sourceCommit":{"committedDate":"2026-05-06T15:58:23Z","message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.4.0","v9.5.0"],"title":"Implement
automated version bump pipeline for patch and minor
releases","number":262224,"url":"https://github.com/elastic/kibana/pull/262224","mergeCommit":{"message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"9.4","label":"v9.4.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/268018","number":268018,"state":"MERGED","mergeCommit":{"sha":"0488fff0ab550877bcdc1aceff667a43e37825f1","message":"[9.4]
Implement automated version bump pipeline for patch and minor releases
(#262224)
(#268018)"}},{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/262224","number":262224,"mergeCommit":{"message":"Implement
automated version bump pipeline for patch and minor releases
(#262224)\n\n## Summary\nImplements a fully automated Buildkite pipeline
for Kibana version\nbumps, supporting both **patch** and **minor**
release workflows. The\nsteps are based on the
[release\ndocument](https://docs.elastic.dev/kibana-team/release) and
talks with\n@mistic.\n\n## What this does\n\n### Pipeline orchestration
(`pipeline.ts`)\nA dynamic pipeline generator that emits different step
sequences\ndepending on the `WORKFLOW` env var:\n\n**Patch
workflow:**\n\n1. Trigger ES build and promote\n2. Bump `package.json`
versions + `versions.json` on the release branch\n3. Trigger DRA
snapshot (+ staging if not `main`)\n4. Update version label color +
reconcile PR labels\n\n**Minor workflow:**\n1. Trigger ES build and
promote\n2. Bump `package.json` versions + `versions.json` on `main`\n3.
Trigger DRA snapshot (+ staging if not `main`)\n4. Do changes in the new
branch\n5. Notify `#mission-control` that Kibana has been branched
(version bump\nstill pending)\n6. Update release branch config +
pipeline resource definitions\n8. Create new release branch off
`main`\n9. Ensure version label exists + reconcile PR labels\n\n### New
scripts\n| Script | Purpose |\n|--------|---------|\n| `bump.sh` | Entry
point that generates and uploads the dynamic\npipeline |\n|
`bump_package_json_versions.sh` | Bumps `package.json` and other
files\non the release branches |\n| `bump_versions_json.sh` | Updates
`versions.json` and `backportrc` for\npatch/minor/major releases |\n|
`create_new_branch_of_main.sh` | Creates and pushes a new
release\nbranch from `main` |\n| `update_release_branch.sh` | Updates
config files on the new release\nbranch |\n|
`update_pipeline_resource_definitions.sh` | Updates the
Buildkite\npipeline resource definitions in main |\n|
`ensure_version_label.sh` | Creates the GitHub version label if
it\ndoesn't exist |\n| `update_label_color.sh` | Updates the version
label color to mark it\nas current |\n| `reconcile_pr_labels.sh` |
Reconciles version labels on open PRs |\n| `notify_branch_created.sh` |
Sends a Slack notification to\n`#mission-control` when a branch is
created |\n| `wait_for_pr_merge.sh` | Utility to poll until an
auto-merge PR is\nmerged |\n\n### Pipeline resource definition\nAdds
`kibana-version-bump` Buildkite pipeline resource definition
with\nappropriate team access controls.\n\n### Auto-approve
workflow\nAdds the version bump pipeline to the list of workflows
eligible for\nautomatic approval of machine-generated PRs\n\n### ES
Build\nAdded step to add ES_SNAPSHOT as metadata to triggered parents
job. Got\nit
from:\nhttps://forum.buildkite.community/t/how-to-download-artifacts-back-from-triggered-pipeline/3480\n\nRelates
to
https://github.com/elastic/kibana-operations/issues/486\n\n---------\n\nCo-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by:
Alex Szabo
<alex.szabo@elastic.co>","sha":"1e77af490d34b693004bdbfe426f5101dbb8d10e"}}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:all-open Backport to all branches that could still receive a release release_note:skip Skip the PR/issue when compiling release notes v8.19.16 v9.3.5 v9.4.0 v9.5.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants