Skip to content

Releasing

  1. Ensure that the release branch already exist.

  2. Checkout the release branch. Example: git fetch upstream && git checkout release-1.5

  3. Run the script found at hack/trigger-release.sh as follows:

./hack/trigger-release.sh <version> <remote name>

Example:

./hack/trigger-release.sh v1.6.0-rc1 upstream

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 Release.

  1. When the action completes, visit the generated draft GitHub releases and enter the details about the release:
  2. Getting started (copy from previous release and new version)
  3. Changelog

Update Brew formula

  1. Update Brew formula:

  2. Fork the repo https://github.com/argoproj/homebrew-tap

  3. Run the following commands to update the brew formula:
    cd homebrew-tap
    ./update.sh kubectl-argo-rollouts $VERSION
    
  4. If there is a new minor version we want to update the versioned formula as well:
    • Run the following commands to update the versioned brew formula:
      ./update.sh kubectl-argo-rollouts $VERSION @<version_without_patch_and_v>
      
    • Example: If the new version is v1.3.2, we want to update the formula for v1.3 as well.
      ./update.sh kubectl-argo-rollouts v1.3.2 @1.3
      
  5. Commit and push the changes to your fork
    git commit -am "Update kubectl-argo-rollouts to $VERSION"
    
  6. Create a PR with the modified files pointing to upstream/master
  7. Once the PR is approved by a maintainer, it can be merged.

Verify

  1. Install locally using the command below and follow the Getting Started Guide:

    kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/${VERSION}/install.yaml
    
  2. Check the Kubectl Argo Rollout plugin:

    brew upgrade kubectl-argo-rollouts
    kubectl argo rollouts version
    

Releasing from your own fork of Argo Rollouts

It is also possible to release from your own personal/company fork. This is useful if your organization keeps a second copy of Argo Rollouts for hot-fixes or security updates.

  1. Sign-up for a RedHat account so that you get acess to Quay Registry
  2. Login and create two repositories called argo-rollouts and kubectl-argo-rollouts (for the CLI)
  3. Under "Account settings" create a "Robot account" for CI automation with any name you want. A token will be generated for you

Then enter your GitHub account in your own forked repo and under Settings -> "Secrets and Variables" -> actions:

  • Add QUAY_USERNAME and QUAY_ROBOT_TOKEN as "Repository Secrets" with the values you created from the previous step
  • Add REGISTRY_NAMESPACE with your own Quay username/organization as "Repository variables"

Now follow any of the instructions from the previous section and you will see released images in your own Quay repository.

Tip

The trigger-release.sh does some basic checks for the name of the tag. If you want to release with a tag that doesn't follow the expected naming convention you can skip this script and just push a tag on your own directly to GitHub.