In this tutorial, we'll show you **a few short steps** to get started using [GitHub Actions](https://github.com/features/actions) as your continuous integration (CI) workflow for commits and pull requests.
One benefit of Nix is that **CI can build and cache developer environments for every project** on every branch using binary caches.
An important aspect of CI is the feedback loop of, **how many minutes does the build take to finish?**
Using [Cachix](https://cachix.org/) you'll never have to waste time building a derivation twice, and you'll share built derivations with all your developers.
After each job, just-built derivations are pushed to your binary cache.
Before each job, derivations to be built are first substituted (if they exist) from your binary cache.
### 1. Creating your first binary cache
It's recommended to have different binary caches per team, depending who will have write/read access to it.
Fill out the form on the [create binary cache](https://app.cachix.org/cache) page.
On your freshly created binary cache, follow the **Push binaries** tab instructions.
### 2. Setting up secrets
On your GitHub repository or organization (for use across all repositories):
1. Click on `Settings`.
2. Click on `Secrets`.
3. Add your previously generated secrets (`CACHIX_SIGNING_KEY` and/or `CACHIX_AUTH_TOKEN`).