When NixCI runs for a commit, it goes through three stages to evaluate your Nix flake and run builds.
When NixCI runs for a commit, it goes through three stages to evaluate your Nix flake and run builds.
Every run starts with a configuration step in which NixCI reads any optional configuration from the repository.
It is also at this stage that NixCI determines which platforms to build for (e.g.
x86_64-linux
), and schedules builds for each.
See Configuration for more details.
Next, NixCI evaluates your
flake.nix
on each platform to discover what to build.
NixCI discovers which outputs your flake provides and creates a build job for each. See What Gets Built for details on which outputs NixCI builds.
Once all the jobs have been created in the evaluation stage, NixCI runs the jobs in parallel.
Deploy jobs are only run after all the other jobs have passed.
See impure tests and continuous deployment for more details.