When NixCI runs for a commit, it goes through three stages to evaluate your Nix flake and run jobs.
When NixCI runs for a commit, it goes through three stages to evaluate your Nix flake and run jobs.
Every suite starts with a
configure
run in which NixCI reads any optional configuration that the user may have put in the repository.
It is also at this stage that NixCI determines which
system
s to run for, and schedules an evaluation run for each.
See the page on per-commit in-repo Configuration for more information about how to optionally configure NixCI.
Next, NixCI evaluates the
flake.nix
on each of the chosen
system
s.
During evaluation, NixCI discovers which flake outputs exist and schedules build jobs for each. See the page on 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 in a suite have passed.
See the page on impure tests and continuous deployment for more details about how to configure those.