From d6f1b42b079ddf2ecb8afd4cba04d663f46a91a6 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 13 May 2024 16:29:09 +0100 Subject: [PATCH] docs: create RELEASE.md file documenting release process Signed-off-by: Adam Talbot --- README.md | 18 +----------------- RELEASE.md | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 17 deletions(-) create mode 100644 RELEASE.md diff --git a/README.md b/README.md index c8bc66a..71e1ed4 100644 --- a/README.md +++ b/README.md @@ -17,20 +17,4 @@ Starting from v2, `cmctl` is versioned seperately from cert-manager itself. ## Release Process -Create a Git tag with a tagname that has a `v` prefix and push it to GitHub. -This will trigger the [release workflow]. - -1. Create and push a Git tag - -```sh -export VERSION=v2.0.0-alpha.0 -git tag --annotate --message="Release ${VERSION}" "${VERSION}" -git push origin "${VERSION}" -``` - -2. Wait for the [release workflow] to succeed. - -3. Visit the [releases page], edit the draft release, click "Generate release notes", and publish the release. - -[release workflow]: https://github.com/cert-manager/cmctl/actions/workflows/release.yaml -[releases page]: https://github.com/cert-manager/cmctl/releases +The release process is documented in [RELEASE.md](RELEASE.md). \ No newline at end of file diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..a449b03 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,36 @@ +# Releases + +## Schedule + +The release schedule for this project is ad-hoc. Given the pre-1.0 status of the project we do not have a fixed release cadence. However if a vulnerability is discovered we will respond in accordance with our [security policy](https://github.com/cert-manager/community/blob/main/SECURITY.md) and this response may include a release. + +## Process + +There is a semi-automated release process for this project. When you create a Git tag with a tagname that has a `v` prefix and push it to GitHub it will trigger the [release workflow]. + +The release process for this repo is documented below: + +1. Create a tag for the new release: + ```sh + export VERSION=v0.5.0-alpha.0 + git tag --annotate --message="Release ${VERSION}" "${VERSION}" + git push origin "${VERSION}" + ``` +2. A GitHub action will see the new tag and do the following: + - Build the binaries and create shasums + - Create a draft GitHub release + - Upload binaries and shasums +3. Visit the [releases page], edit the draft release, click "Generate release notes", then edit the notes to add the following to the top + ``` + cmctl is the command line tool for interacting with cert-manager. + ``` +4. Publish the release. + +## Artifacts + +This repo will produce the following artifacts each release. For documentation on how those artifacts are produced see the "Process" section. + +- *Binaries* - The `cmctl` binary is created and attached to the GitHub release, along with its shasum + +[release workflow]: https://github.com/cert-manager/cmctl/actions/workflows/release.yaml +[releases page]: https://github.com/cert-manager/cmctl/releases \ No newline at end of file