When processing a commit, NixCI discovers which flake outputs exist and creates a build job for each. This page explains which outputs get built.
For an overview of how NixCI processes commits, see How It Works .
When processing a commit, NixCI discovers which flake outputs exist and creates a build job 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.