Skip to content

Releasing Epinio

Olivier Vernin edited this page Sep 22, 2022 · 18 revisions

Releasing Epinio

Most of the process is automated with different tools but it still needs some manual triggers to continue.

Draft Release

Tools: releasedrafter

Every push on the main branch will trigger the release-drafter workflow.
This will create/update a release draft with the changelog of all the merged PRs not released yet.

Release

Tools: goreleaser, updatecli

The release workflow is triggered when publishing a new release.

The goreleaser action will prepare the assets specified in the .goreleaser.yml file, such as the binaries, docker images and the Homebrew Formula.

Since the Homebrew Formula needs to be pushed to the epinio/homebrew-tap, and the GITHUB_TOKEN is limited to the current repository (see limitation), a Personal Access Token with the repo permission is used, and it's stored in the secrets COMMITTER_TOKEN environment variable. You find detailed information on how to generate a Personal Access Token here.

Helm charts

Tools: chart-releaser

After the goreleaser action is done, the repository-dispatch will take place. This action needs a Github token to dispatch this event (see repository-dispatch token) and a Personal Access Token stored in the CHART_REPO_ACCESS_TOKEN environment variable.

This action will trigger the updatecli workflow in the epinio/helm-charts repository, with the epinio-release event containing the TAG of the release.
The updatecli workflow will also open a PR with the update of the Epinio version in the Chart.yaml (see updatecli.d/epinio.yaml).

After merging the PR, the release workflow can be manually triggered. This will use the chart-releaser-action to publish the updated Helm chart.

Homebrew Core

After the helm-chart action the bump-homebrew-formula-action will run. This action will open a PR in the Homebrew/homebrew-core repository, updating the version of the Formula with the latest Epinio version. Also this action will need a Personal Access Token, and the same COMMITTER_TOKEN is used.

Docs

The epinio/docs is updated automatically with the updatecli workflow, triggered by a release event and/or cronjob. This will use updatecli to check the latest version and eventually open a PR with it (see installation).

If something goes wrong, you can still run the updatecli locally

Requirements

export UPDATECLI_GITHUB_TOKEN=<your_github_token>
export UPDATECLI_GITHUB_ACTOR=<your_username>
# Go to doc directory
cd docs 
# Run Updatecli
updatecli apply --config updatecli/updatecli.d