kata-containers/docs/Release-Process.md
Greg Kurz 5009fabde4 release: Keep it draft until all artifacts have been published
The automated release workflow starts with the creation of the release in
GitHub. This is followed by the build and upload of the various artifacts,
which can be very long (like hours). During this period, the release appears
to be fully available in https://github.com/kata-containers/kata-containers/
even though it lacks all the artifacts. This might be confusing for users
or automation consuming the release.

Create the release as draft and clear the draft flag when all jobs are
done. This ensure that the release will only be tagged and made public
when it is fully usable.

If some job fails because of network timeout or any other transient
error, the correct action is to restart the failed jobs until they
eventually all succeed. This is by far the quicker path to complete
the release process.

If the workflow is *canceled* for some reason, the draft release is left
behind. A new run of the workflow will create a brand new draft release
with the same name (not an issue with GitHub). The draft release from
the previous run should be manually deleted. This step won't be automated
as it looks safer to leave the decision to a human.

[1] https://github.com/kata-containers/kata-containers/releases

Fixes #9064 - part VI

Signed-off-by: Greg Kurz <groug@kaod.org>
2024-03-26 14:48:05 +01:00

2.2 KiB

How to do a Kata Containers Release

This document lists the tasks required to create a Kata Release.

Requirements

  • GitHub permissions to run workflows.

Release Process

Bump the VERSION file

When the kata-containers/kata-containers repository is ready for a new release, first create a PR to set the release in the VERSION file and have it merged.

Check GitHub Actions

We make use of GitHub actions in the release file from the kata-containers/kata-containers repository to build and upload release artifacts.

The action is manually triggered and is responsible for generating a new release (including a new tag), pushing those to the kata-containers/kata-containers repository. The new release is initially created as a draft. It is promoted to an official release when the whole workflow has completed successfully.

Check the actions status page to verify all steps in the actions workflow have completed successfully. On success, a static tarball containing Kata release artifacts will be uploaded to the Release page.

If the workflow fails because of some external environmental causes, e.g. network timeout, simply re-run the failed jobs until they eventually succeed.

If for some reason you need to cancel the workflow or re-run it entirely, go first to the Release page and delete the draft release from the previous run.

Improve the release notes

Release notes are auto-generated by the GitHub CLI tool used as part of our release workflow. However, some manual tweaking may still be necessary in order to highlight the most important features and bug fixes in a specific release.

With this in mind, please, poke @channel on #kata-dev and people who worked on the release will be able to contribute to that.

Announce the release

Publish in Slack and Kata mailing list that new release is ready.