Continuous Integration (CI)

From NixOS Wiki
Revision as of 20:24, 21 July 2020 by imported>Profpatsch (Add basic CI page. Add nix-build-uncached section.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Nix nicely integrates into your CI.

TODO: some general tips & tricks

nix-build, without downloading the result if already built

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