Skip to content

CI & bots

LeChatErrant edited this page Dec 18, 2021 · 12 revisions

Continuous integration

Every modification in the codebase is controlled with continuous integration (CI).

The followings are executed automatically at each commit to ensure code quality and avoid regressions

  • Linter
  • Unit tests
  • Integration tests

A pull request needs a full green CI and at least one other developer to approve those changes before being merged

Pipeline

Build docker image

With each merge on master, a docker image is built, tagged with the SHA of the commit, and pushed to ghcr.io - the github docker registry

You can easily use it with docker pull ghcr.io/lechaterrant/api-template:SHA

When a release is published, a docker image is automatically created, tagged with the version number and the latest tag

Pull it using docker pull ghcr.io/lechaterrant/api-template:1.0.0 for example, or even docker pull ghcr.io/lechaterrant/api-template:latest

Docker package

Releases

Releases can be published using the github action Create a new release

Changelog will be automatically generated from github PRs and issuers

Release

Automated dependencies updates

All dependencies are maintained up-to-date automatically by dependabot, with the continuous integration ensuring no breaking update will be merged

It means

  • Last features will always be available
  • Security issues will be fixed as soon as possible, maintaining a cleaner npm audit

Dependency update

So...

A bot find an out-to-date dependency and open a PR

An other bot checks if it doesn't break the codebase

If not, a third bot merge it

Would you believe it if a fourth bot congrats the others for their hard work once the PR is closed ...?

Table of contents

I hate updating Table of Contents (TOC) section of a README.md after editing it

That's why a bot is checking if any updates are needed and commit if necessary 🤖 ❤️

Clone this wiki locally