Implement automated version bump pipeline for patch and minor releases#262224
Conversation
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.
…ump step in minor workflow
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.
delanni
left a comment
There was a problem hiding this comment.
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.
💚 Build Succeeded
Metrics [docs]
History
cc @TamerlanG |
|
Starting backport for target branches: 8.19, 9.3, 9.4 https://github.com/elastic/kibana/actions/runs/25446319688 |
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
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>
…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-->
…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>
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
WORKFLOWenv var:Patch workflow:
package.jsonversions +versions.jsonon the release branchmain)Minor workflow:
package.jsonversions +versions.jsononmainmain)#mission-controlthat Kibana has been branched (version bump still pending)mainNew scripts
bump.shbump_package_json_versions.shpackage.jsonand other files on the release branchesbump_versions_json.shversions.jsonandbackportrcfor patch/minor/major releasescreate_new_branch_of_main.shmainupdate_release_branch.shupdate_pipeline_resource_definitions.shensure_version_label.shupdate_label_color.shreconcile_pr_labels.shnotify_branch_created.sh#mission-controlwhen a branch is createdwait_for_pr_merge.shPipeline resource definition
Adds
kibana-version-bumpBuildkite 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