CI Jobs


We use Github Actions for our CI jobs. Right now, we use a self-hosted runner running on an Intel NUC.

The runners all run in a custom container. See ci/runner/Dockerfile for details on the container, and instructions on how to build it. At the moment, you need to manually deploy and restart containers when that file is updated.

Actions are automatically picked up from the YAML files in.github/workflows.

There are four actions right now:

  • build.yml - Builds all of the software and runs unit tests
  • lint.yml - Runs the linting script to ensure there aren’t linting issues
  • asan.yml - Runs the address/leak sanitizer over all of our unit tests
  • tsan.yml - Runs the thread sanitizer over all of our unit tests
  • coverage.yml - Runs coverage over the full tree, uploading it as an artifact
  • web.yml - Runs build & unit tests for web tools (only active if you change a frontend)

See the official site for more detail.