Use this checklist to create a new release of circles-api 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
mainbranch, otherwise rungit checkout main. git pullto make sure you haven’t missed any last-minute commits. After this point, nothing else is making it into this version.npm testto ensure that all tests pass locally.git pushand verify all tests pass on all CI services.- Read the git history since the last release, for example via
git --no-pager log --oneline --no-decorate v1.3.12^..origin/main(replacev1.3.12with the last published version). - Condense the list of changes into something user-readable and write it into the
CHANGELOG.mdfile 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.mdchanges you've just made. - Create a git and npm tag based on semantic versioning using
npm version [major | minor | patch]. git push origin main --tagsto push the tag to GitHub.git push origin mainto push the automaticpackage.jsonchange after creating the tag.- 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.mdfor 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 circles-api 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.