Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Continuous Integration

As this project is developed on GitHub, we use GitHub Actions as our continuous integration (CI).

Nix Efforts

Currently, an experiment is underway to convert parts of our CI to Nix. The reasons are:

  • Nix workflows are often faster, due to clever caching
  • They are easier to adapt for workflows that require air-gapping
  • Less vendor lock-in to GitHub - On any CI provider, you will only have to put nix flake check in your yaml
  • If you have Nix installed on your computer, you can run it locally with ease, compared to GitHub Actions-defined Workflows which needs a 100GiB container
  • Nix allows for deterministic builds, which makes our CI less likely to flake based on updates of our dependencies we are not pinning properly

For people who cannot or will not install Nix, this should have little difference compared to GH Actions. Instead of modifying the GitHub Actions YAML, and pushing to a pull request to see whether it works, they can simply edit whatever code the Nix code is calling to see whether it works.