Skip to content

Add Release Candidate build support to Release Automation scripts#731

Open
aThorp96 wants to merge 3 commits into
openshift-pipelines:mainfrom
aThorp96:rc-build-support
Open

Add Release Candidate build support to Release Automation scripts#731
aThorp96 wants to merge 3 commits into
openshift-pipelines:mainfrom
aThorp96:rc-build-support

Conversation

@aThorp96
Copy link
Copy Markdown
Member

@aThorp96 aThorp96 commented May 19, 2026

Overview

Add support for Release Candidate (RC) builds.

  • Add a new subcommand to release manager, finalize-rc, which converts an RC build to a regular release build
  • Modify the new-release command to create new versions in RC mode (with -RC-1 trailer). Subsequent new-release calls to the same version increment the RC number.
  • Extend the Automated Release Actions Github Workflow to support Finalizing Release Candidate Releases.
  • Add a dedicated Github Workflow for each Release Action, though each in turn simply calls the shared "Automated Release Actions" workflow with the corresponding parameters.

Schema Changes

Release files' patch-version field has been renamed release-tag

Workflow overview

When a release captain is preparing for a new release, they now do the following:

  1. Create an RC build using the Github Workflow Release Action - New Release, which generates a Release File with <version>-RC-1.
  2. Make any necessary changes to the versions included in the Release File
  3. Run the Generate konflux configurations Github Workflow (or ensure it was run automatically), which generates the Konflux configuration files (release plan, application, etc) with version: x.y but the Release Plan's release_version set to vX.Y.Z-RC-1.
  4. Ensure the various components' pull requests are all merged, Konflux resources are applied, etc. proceed as normal
  5. The automatic release process will release the operator index to development (push to quay.io) and tag the image with vX.Y.Z-RC-N (e.g. v1.2.3-RC-1). The Release Captain can give this image+tag to QA.
  6. When the next release candidate is needed, the Release Captain can follow the process again (minus the component-PRs) to get the next RC build (RC-2)
  7. Once the release is ready for the non-RC build, the Release Captain runs the Github Workflow Release Action - Finalize RC to update the Release File with is-rc: false and drop the rc-version.
  8. They then ensure the Konflux resources are all updated and applied on the cluster
  9. The next release will use the release_version as normal, no -RC-n suffix.

@aThorp96
Copy link
Copy Markdown
Member Author

From a call:

  • track the RC version directly in the patch-version field
  • rename the patch-version file to release-tag
  • No dedicated create-rc-build; make new-release default to RC build

@aThorp96 aThorp96 force-pushed the rc-build-support branch 2 times, most recently from 01f5b31 to 21380db Compare May 29, 2026 20:13
With this change, the `new-release` action generates a "Release
Candidate" (RC), where the release version having the pre-release version
field "RC-<N>". A release candidate is "finalized" by removing the
pre-release trailer, which is done by the "finalize-release" action.

While release version is an RC, the update-upstream-versions automation
will run against the release automatically.

For ergonomics, this change also add a dedicated Github Workflow for
each Release Action, which each in turn simply call the shared
"Automated Release Actions" workflow with the corresponding parameters.

Assisted-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@aThorp96 aThorp96 force-pushed the rc-build-support branch from 7d5b90e to 5dadfe7 Compare June 1, 2026 16:19
The field `patch-version` is no longer accurate since it includes semver
metadata like `-RC-1`. This clarifies the naming and updates all
references to the field
@aThorp96 aThorp96 force-pushed the rc-build-support branch from 5dadfe7 to 5236256 Compare June 1, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant