nixci
builds all outputs in a flake, or optionally its sub-flakes, which can in turn be used either in CI or locally. Using [devour-flake] it will automatically build the following outputs:
| Type | Output Key |
| ---------------------- | ----------------------------------------------- |
| Standard flake outputs | packages
, apps
, checks
, devShells
|
| NixOS | nixosConfigurations.*
|
| nix-darwin | darwinConfigurations.*
|
| home-manager | legacyPackages.${system}.homeConfigurations.*
|
Note To make use of the binary cache, first run:
nix run nixpkgs#cachix use srid
To install, run nix profile install github:srid/nixci
. You can also use use nix run github:srid/nixci
to run nixci
directly off this repo without installing it.
nixci
accepts any valid flake URL or a Github PR URL.
```sh
$ nixci ~/code/myproject
$ nixci github:hercules-ci/hercules-ci-agent
$ nixci https://github.com/srid/emanote/pull/451 ```
By default, nixci
will build the top-level flake, but you can tell it to build sub-flakes by adding the following output to your top-level flake:
```nix
{ nixci = { dir1 = { dir = "dir1"; }; dir2 = { dir = "dir2"; overrideInputs.myproject = ./.; }; } } ```
Some real-world examples of how nixci is used with specific configurations:
nixci
) that optionally specifies all the sub-flakes to build, along with their input overridesflake.lock
is in syncnixci
as a Groovy function