Release process
This document describes Capact release process.
Prerequisites
For all of the following repositories:
make sure all of the following prerequisites are met:
- Admin role for a given repository.
- Disabled branch protection rules. This allows the release jobs to commit directly to
main
and release branches. - An GitHub Environment named
Release
in a given repository with the following secret set:GH_PAT
— GitHub personal access token. Make sure that it hasrepo
andwrite:packages
scopes. Must be in format:<username>:<PAT>
Moreover, there are additional prerequisites for the
capactio/capact
repository:- In GitHub Environment named
Release
, add the following secret:GCS_CREDS
— Google Cloud Platform credentials in JSON format to access Google Cloud Storage for binary and chart releases. Make sure that it hasstorage.objects.create
permission.
- In GitHub Environment named
Steps
Use Semantic Versioning 2.0.0 to specify the next Capact release.
Release Dashboard
The release of Dashboard is automated and done using a GitHub Action workflow.
- Open the Make release workflow.
- Click
Run workflow
and depending on your scenario:- if making a major/minor release from
main
, select themain
branch and put the version in SemVer, e.g.0.5.0
, - if making a patch release from a release branch, select the given release branch and put the version in SemVer, e.g.
0.5.1
.
- if making a major/minor release from
- Click
Run workflow
to start the release workflow.
Release Capact container images and binaries
The release of Capact container images and binaries is automated and done using a GitHub Action workflow.
- Open the Make release workflow.
- Click
Run workflow
and depending on your scenario:- if making a major/minor release from
main
, select themain
branch and put the version in SemVer, e.g.0.5.0
, - if making a patch release from a release branch, select the given release branch and put the version in SemVer, e.g.
0.5.1
. - provide Dashboard image tag from a
capactio/dashboard
release build.
- if making a major/minor release from
- Click
Run workflow
to start the release workflow.
The workflow will prepare the release branch, tag the appropriate commit and create a GitHub Release. gren
is used to create the release notes from merged pull requests.
Release Hub manifests
The release of Hub Manifests is automated and done using a GitHub Action workflow.
- Open the Make release workflow.
- Click
Run workflow
and put the version parameter and the runner image tag from acapactio/capact
release build. - Click
Run workflow
to start the release workflow.
Validate the release
- Install Capact locally from the version you've just released.
- Run one of our manifests, such as Mattermost installation. Make sure it passes.
Release documentation
The release of Capact documentation is automated and done using a GitHub Action workflow. If you release a new major or minor Capact version, follow these steps:
- Open the Make release workflow.
- Click
Run workflow
and for the version parameter, provide an already released Capact version. - Click
Run workflow
to start the release workflow.
To read more about documentation versioning, see the Versioning page on the Docusaurus website.
Further manual steps
- For the
capactio/website
repository: Update announcement bar.- Create pull request with announcement banner update (
themeConfig.announcementBar
in thedocusaurus.config.js
file). - Get review from any code owner and merge it.
- Create pull request with announcement banner update (
- For the
capactio/capact
repository:- Archive images from Helm charts and add to the GitHub release.
- Check out the release branch for the release you created.
- Make sure you track
upstream
release branch and you are on the latest commit. - Run the following command:
CAPACT_VERSION={version} # e.g. 0.5.0
capact alpha archive-images helm -v --version ${CAPACT_VERSION} -o ./capact-images-amd64.tar.gz --compress gzip - Once the archive is ready to upload, navigate to the
capact
Releases page and edit your release. - Upload the archive as another attachment to the release and click Update release button.
- On the
capact
Releases page, edit the draft release with key highlights and publish it.
- Archive images from Helm charts and add to the GitHub release.
- Share the news on our Slack and social media.
Cleanup
For all of the following repositories:
perform the following steps:
- Reenable
main
andrelease-*
branch protection rules - Remove
GH_PAT
secret from Release environments
- Reenable
Additionally, for the
capactio/capact
repository, perform the following steps:- Remove
GCS_CREDS
secret from Release environments
- Remove