-
Notifications
You must be signed in to change notification settings - Fork 55
Releasing Epinio
Most of the process is automated with different tools but it still needs some manual triggers to continue.
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.
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.
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.
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.
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