nix flake check

Warning: This program is experimental and its interface is subject to change.

# Name

`nix flake check` - check whether the flake evaluates and run its tests

# Synopsis

`nix flake check` [option...] flake-url

# Examples

- Evaluate the flake in the current directory, and build its checks:

      # nix flake check

- Verify that the `patchelf` flake evaluates, but don't build its checks:

      # nix flake check --no-build github:NixOS/patchelf

# Description

This command verifies that the flake specified by flake reference flake-url can be evaluated successfully (as detailed below), and that the derivations specified by the flake's `checks` output can be built successfully.

If the `keep-going` option is set to `true`, Nix will keep evaluating as much as it can and report the errors as it encounters them. Otherwise it will stop at the first error.

# Evaluation checks

The following flake output attributes must be derivations:

- `checks.`system`.`name
- `defaultPackage.`system
- `devShell.`system
- `devShells.`system`.`name
- `nixosConfigurations.`name`.config.system.build.toplevel`
- `packages.`system`.`name

The following flake output attributes must be app definitions:

- `apps.`system`.`name
- `defaultApp.`system

The following flake output attributes must be template definitions:

- `defaultTemplate`
- `templates.`name

The following flake output attributes must be Nixpkgs overlays:

- `overlay`
- `overlays.`name

The following flake output attributes must be NixOS modules:

- `nixosModule`
- `nixosModules.`name

The following flake output attributes must be bundlers:

- `bundlers.`name
- `defaultBundler`

In addition, the `hydraJobs` output is evaluated in the same way as Hydra's `hydra-eval-jobs` (i.e. as a arbitrarily deeply nested attribute set of derivations). Similarly, the `legacyPackages`.system output is evaluated like `nix-env -qa`.

# Options

- `--no-build`
  Do not build checks.

Common evaluation options:

- `--arg` name expr
  Pass the value expr as the argument name to Nix functions.

- `--argstr` name string
  Pass the string string as the argument name to Nix functions.

- `--eval-store` store-url
  The Nix store to use for evaluations.

- `--impure`
  Allow access to mutable paths and repositories.

- `--include` / `-I` path
  Add path to the list of locations used to look up `<...>` file names.

- `--override-flake` original-ref resolved-ref
  Override the flake registries, redirecting original-ref to resolved-ref.

Common flake-related options:

- `--commit-lock-file`
  Commit changes to the flake's lock file.

- `--inputs-from` flake-url
  Use the inputs of the specified flake as registry entries.

- `--no-registries`
  Don't allow lookups in the flake registries. This option is deprecated; use `--no-use-registries`.

- `--no-update-lock-file`
  Do not allow any updates to the flake's lock file.

- `--no-write-lock-file`
  Do not write the flake's newly generated lock file.

- `--override-input` input-path flake-url
  Override a specific flake input (e.g. `dwarffs/nixpkgs`). This implies `--no-write-lock-file`.

- `--recreate-lock-file`
  Recreate the flake's lock file from scratch.

- `--update-input` input-path
  Update a specific flake input (ignoring its previous entry in the lock file).