docs/developer-guide/releasing.md
Argo CD is released in a 2 step automated fashion using GitHub actions. The release process takes about 60 minutes, sometimes a little less, depending on the performance of GitHub Actions runners.
The target release branch must already exist in the GitHub repository. If you for
example want to create a release v2.7.0, the corresponding release branch
release-2.7 needs to exist, otherwise, the release cannot be built. Also,
the trigger tag should always be created in the release branch, checked out
in your local repository clone.
Before triggering the release automation, the CHANGELOG.md should be updated
with the latest information, and this change should be committed and pushed to
the GitHub repository to the release branch. Afterward, the automation can be
triggered. This will be automated in the very near future.
Manual steps before release creation:
CHANGELOG.md with changes for this releaseCHANGELOG.mdgoreleaser.yaml with the updated blog post link in the Release Notes Blog Post section.The Init ArgoCD Release workflow will perform the following steps:
VERSION file in the release branchThe Publish ArgoCD Release workflow will perform the following steps:
VERSION file in the master branch when a new release is GAVERSION file. (e.g 2.7.0-rc1)When the action is completed a pull request will be generated that contains the updated manifest and Version file.
The steps below need to be executed by someone with write access in Argo CD upstream repo.
git fetch upstream && git checkout release-2.7hack/trigger-release.sh as follows:./hack/trigger-release.sh <version> <remote name>
Example:
./hack/trigger-release.sh v2.7.2 upstream
The script will ask for confirmation, type y to proceed. If no confirmation is received within 30 seconds, the script will abort.
[!TIP] The tag must be in one of the following formats to trigger the GH workflow:
- GA:
v<MAJOR>.<MINOR>.<PATCH>
- Pre-release:
v<MAJOR>.<MINOR>.<PATCH>-rc<RC#>
Once the script is executed successfully, a GitHub workflow will start
execution. You can follow its progress under the Actions tab, the name of the action is Publish ArgoCD Release.
[!WARNING] You cannot perform more than one release on the same release branch at the same time.
After the automatic release creation has finished, you should perform manual checks to see if the release came out correctly:
If something went wrong, damage should be limited. Depending on the steps that have been performed, you will need to manually clean up.
Releases page on GitHubThe release process does not allow a manual release process. Image signatures and provenance need to be created using GitHub Actions.
| File | Description |
|---|---|
| goreleaser.yaml | Config to build CLI binaries, checksums, release-notes |
| .github/workflows/image-reuse.yaml | Reusable workflow used to generate container images |
| .github/workflows/init-release.yaml | Used to generate manifest and VERSION file |
| .github/workflows/release.yaml | Build image, CLI binaries, provenances, sbom, post jobs |
| ./hack/trigger-release.sh | Ensures all pre-requistes are met and pushes the tag |