Skip to content

Commit

Permalink
docs: create RELEASE.md file documenting release process
Browse files Browse the repository at this point in the history
Signed-off-by: Adam Talbot <adam.talbot@venafi.com>
  • Loading branch information
ThatsMrTalbot committed May 13, 2024
1 parent 656eb61 commit d6f1b42
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 17 deletions.
18 changes: 1 addition & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
36 changes: 36 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit d6f1b42

Please sign in to comment.