Continuous Integration (CI): Difference between revisions
imported>Mic92 fix syntax |
imported>Mic92 →Build kite: move to own article |
||
Line 26: | Line 26: | ||
=== Build kite === | === Build kite === | ||
See the [[Buildkite]] article | |||
Revision as of 08:38, 2 August 2020
Nix nicely integrates into your CI.
TODO: some general tips & tricks
Avoid downloading already built results
nix-build
will always ensure the built store path is put in the local store, be it by building or by downloading from a substituter. On CI, we often only want to check whether we can build the derivation, without using or running the output.
This can be achieved by using `--dry-run` to check whether the result would be fetched, and only building it it has to be built.
nix-build-if-changed.py implements this in a relatively straightforward (but naïve) Python script.
nix-build-uncached implements it in a slightly more elaborate manner, and is available on nixpkgs (as the nix-build-uncached
package).
Instructions for specific CI Providers
Travis CI
See Nix_on_Travis article
Github actions
See install-nix-action to install nix in Linux/macOS actions. There is also one action to setup cachix, a hosted binary cache.
Build kite
See the Buildkite article