Use this checklist to create a new release of safe-relay-service
and distribute the Docker image to our private DigitalOcean registry and DockerHub. All steps are intended to be run from the root directory of the repository.
- Make sure you are currently on the
main
branch, otherwise rungit checkout main
. git pull
to make sure you haven’t missed any last-minute commits. After this point, nothing else is making it into this version.- Read the git history since the last release, for example via
git --no-pager log --oneline --no-decorate v4.1.10^..origin/main
(replacev4.1.10
with the last published version). - Condense the list of changes into something user-readable and write it into the
CHANGELOG.md
file with the release date and version, following the specification here on how to write a changelog. Make sure you add references to the regarding PRs and issues. - Commit the
CHANGELOG.md
changes you've just made. - Create a git based on semantic versioning using
git tag vX.X.X
. git push origin main --tags
to push the tag to GitHub.- Create a new release on GitHub, select the tag you've just pushed under "Tag version" and use the same for the "Release title". For "Describe this release" copy the same information you've entered in
CHANGELOG.md
for this release. See examples here.
All tagged GitHub commits should be uploaded to our private DigitalOcean registry and the public DockerHub registry automatically by the tagbuild.yaml GitHub Action.
After the action was completed successfully you can now use the uploaded Docker image to deploy it.
For local development we use the circles-docker repository. To use the new version of safe-relay-service
please update the following configuration here and commit the update to the circles-docker
repository.
Rebuild your environment via make build
to use the updated version in your local development setup. Consult the README.md
in the repository to read more about this.
The official staging
and production
servers of Circles are maintained via the circles-iac repository. Both environments have separate version configurations. You will need to change the version for staging and production in the regarding imageTag
fields. Commit the change to the circles-iac
repository.
Deploy the release via helm
to the regarding Kubernetes cluster on DigitalOcean. Consult the README.md
in the repository to read more about how deploy on Kubernetes.