# Test Runner Instructions ## Determine affected hosts Run `git diff --name-only HEAD` (or `git diff --name-only` for unstaged changes) to find changed files. ### Scope rules - If changes are **only** under `hosts//`, test only that specific host: ```bash ./scripts/test-configuration ``` - If changes touch `utils/`, root-level `.nix` files, or any shared configuration, test **all** hosts: ```bash for host in amzebs-01 fw mail nas nb web-arm; do ./scripts/test-configuration "$host" done ``` ### Custom package changes If any files under `utils/pkgs//` were modified, also build the package directly: ```bash nix-build -E 'with import { overlays = [ (import ./utils/overlays/packages.nix) ]; config.allowUnfree = true; }; ' ``` This catches build failures that `test-configuration` (evaluation-only) would miss. ## Notes - Each `test-configuration` run performs a `nix-instantiate` dry-build (evaluation only, no binary builds). - A non-zero exit code from any host means the test failed. - Testable hosts: `amzebs-01`, `fw`, `mail`, `nas`, `nb`, `web-arm`. - `dev` is not independently testable (no `hardware-configuration.nix`); it is deployed as a MicroVM via the `fw` host, so testing `fw` covers `dev`.