Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

ci: add new release candidate semi-automation #90

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nbusseneau
Copy link
Member

This commit adds semi-automation to help maintainers create release candidate branches in preparation for a new version release. The intent here is that RC branch preparation (manifests, etc.) and conformance tests themselves are automated, but with the user still having control over when to actually move forward with promoting the RC and publishing the release.

Usage:

  • The user manually triggers the prepare-test-rc workflow, passing in the version number (e.g. 1.12.3).

  • The workflow first checks if an RC branch for this version already exists. If it does not, it will create it.

  • The workflow then runs the usual lint / build / validate (previously ran on pull_request events, i.e. when a PR was manually opened) against the RC branch. Just as before, this pushes an image with the corresponding commit SHA to quay.io/cilium/cilium-olm, which can be used for manual testing.

  • The workflow then sets up an OpenShift cluster on AWS using the manifests from the RC branch, tweaked as required in order to run conformance tests, and runs the conformance tests. In case of failure, the OpenShift log bundle is uploaded as an artifact for manual inspection.

  • The user can then open an PR from the RC branch, and iterate on it, re-triggering tests via the prepare-test-rc workflow as necessary. Just as before, the user merges the PR once satisfied, and can run the publish workflow.

This commit adds semi-automation to help maintainers create release
candidate branches in preparation for a new version release. The intent
here is that RC branch preparation (manifests, etc.) and conformance
tests themselves are automated, but with the user still having control
over when to actually move forward with promoting the RC and publishing
the release.

Usage:

- The user manually triggers the `prepare-test-rc` workflow, passing in
  the version number (e.g. `1.12.3`).

- The workflow first checks if an RC branch for this version already
  exists. If it does not, it will create it.

- The workflow then runs the usual lint / build / validate (previously
  ran on `pull_request` events, i.e. when a PR was manually opened)
  against the RC branch. Just as before, this pushes an image with the
  corresponding commit SHA to `quay.io/cilium/cilium-olm`, which can be
  used for manual testing.

- The workflow then sets up an OpenShift cluster on AWS using the
  manifests from the RC branch, tweaked as required in order to run
  conformance tests, and runs the conformance tests. In case of failure,
  the OpenShift log bundle is uploaded as an artifact for manual
  inspection.

- The user can then open an PR from the RC branch, and iterate on it,
  re-triggering tests via the `prepare-test-rc` workflow as necessary.
  Just as before, the user merges the PR once satisfied, and can run the
  `publish` workflow.

Signed-off-by: Nicolas Busseneau <[email protected]>
@nbusseneau nbusseneau marked this pull request as draft December 22, 2022 23:52
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant