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
mainand release branches. - An GitHub Environment named
Releasein a given repository with the following secret set:GH_PAT— GitHub personal access token. Make sure that it hasrepoandwrite:packagesscopes. Must be in format:<username>:<PAT>
Moreover, there are additional prerequisites for the
capactio/capactrepository:- 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.createpermission.
- 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 workflowand depending on your scenario:- if making a major/minor release from
main, select themainbranch 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 workflowto 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 workflowand depending on your scenario:- if making a major/minor release from
main, select themainbranch 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/dashboardrelease build.
- if making a major/minor release from
- Click
Run workflowto 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 workflowand put the version parameter and the runner image tag from acapactio/capactrelease build. - Click
Run workflowto 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 workflowand for the version parameter, provide an already released Capact version. - Click
Run workflowto start the release workflow.
To read more about documentation versioning, see the Versioning page on the Docusaurus website.
Further manual steps
- For the
capactio/websiterepository: Update announcement bar.- Create pull request with announcement banner update (
themeConfig.announcementBarin thedocusaurus.config.jsfile). - Get review from any code owner and merge it.
- Create pull request with announcement banner update (
- For the
capactio/capactrepository:- 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
upstreamrelease 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
capactReleases page and edit your release. - Upload the archive as another attachment to the release and click Update release button.
- On the
capactReleases 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
mainandrelease-*branch protection rules - Remove
GH_PATsecret from Release environments
- Reenable
Additionally, for the
capactio/capactrepository, perform the following steps:- Remove
GCS_CREDSsecret from Release environments
- Remove