During the evaluation stage, NixCI discovers which flake outputs exist and schedules build jobs for each. This page explains which outputs get built.
For an overview of how NixCI processes commits, see How It Works .
During the evaluation stage, NixCI discovers which flake outputs exist and schedules build jobs for each. This page explains which outputs get built.
For an overview of how NixCI processes commits, see How It Works .
NixCI builds the following flake outputs, in this order:
devShell
devShells
formatter
packages
checks
You can control which systems and outputs get excluded in your NixCI configuration .
Given a flake with these outputs for
x86_64-linux
:
{
devShell.x86_64-linux = ...;
devShells.x86_64-linux.default = ...;
formatter.x86_64-linux = ...;
packages.x86_64-linux.default = ...;
packages.x86_64-linux.my-app = ...;
checks.x86_64-linux.lint = ...;
checks.x86_64-linux.tests = ...;
}
NixCI will create these build runs:
devShell.x86_64-linux
devShells.x86_64-linux.default
formatter.x86_64-linux
packages.x86_64-linux.default
packages.x86_64-linux.my-app
checks.x86_64-linux.lint
checks.x86_64-linux.tests
NixCI does not build
nixosConfigurations
directly because the architecture cannot be determined automatically.
To build a NixOS configuration, expose it as a check:
checks.x86_64-linux.my-machine = nixosConfigurations.my-machine.config.system.build.toplevel;
In addition to build jobs, NixCI can run impure tests and continuous deployment jobs. These are configured separately and run after builds complete.