Documentation

menu
Nix FlakesGarnyaml configWhat Garnix CI doesDeploymentsUsing Private InputsCachingGitHub Actions IntegrationBadges

What Garnix CI doesshare

When we run your builds, here is what we do.

  1. Check whether either a flake.nix or a garnix.yaml exist. If neither do, stop, without creating checks.
  2. Run nix eval .#<type>.x86_64-linux --apply builtins.attrNames --json, in the top level dir, substituting for type: packages, checks, devShells, homeConfigurations, and nixosConfigurations. This gives a list of attributes.
  3. Check whether defaultPackage.x86_64-linux and devShell.x86_64-linux exist. If so, add them to the list of attributes.
  4. For each item in the list, run
    1. nix eval <attribute> --apply 'pkg: pkg.drvPath' --raw
    2. nix build '<drvpath>^*' --log-lines 0 --print-build-logs
  5. Use the drvPath obtained from nix eval to query nix log. (If that's not available, other heuristics for logs may be used.)

If the build fails, you can always run these steps yourself to understand why.