Manually specified job dependencies

You can manually specify dependencies between jobs in your nix-ci.nix configuration file.

A build that depends on another will not start until its dependency has completed successfully.

For example, this nix-ci.nix makes checks.x86_64-linux.e2e-test wait for packages.x86_64-linux.server to complete:

{
  dependencies = {
    "checks.x86_64-linux.e2e-test" = ["packages.x86_64-linux.server"];
  };
}

NixCI already computes optimal dependencies automatically via dependency discovery .

It is impossible to speed up completing a suite successfully by adding extra dependencies. However, adding dependencies can be useful to make suites fail faster by running more expensive checks later.

Manually specified dependencies are merged with automatically discovered ones. If the combined set contains a cycle, the manually specified dependencies are dropped.

Reference schema

dependencies: # optional
  # Additional build dependencies on top of what is discovered automatically. A map from attribute to a list of attributes it depends on.
  # or null
  <key>: 
    - <string>