Watch
0
0
Fork
You've already forked hyperhive
0

ci: type-check vm test scripts without building the vms

Adds checks.<system>.vm-test-typecheck-<name> for hive-squid, swarm-archive, agent-ephemeral-rootfs, full-setup and wg-hive: ty and ruff F over nixpkgs' test-script prelude, the machine hints from the node names, and the script text. Node configs are never evaluated. vm-test-typecheck-control passes only when ty rejects a known type error.
This commit is contained in:
atlas 2026-11-13 08:07:04 +01:00 • committed by mara
commit 32f5b74ba4

View file

@ -114,7 +114,13 @@ slow); run those manually before pushing Rust changes.
Tests that boot NixOS VMs are the `vmTests.<system>.<name>` flake output
(`nix/vm-tests.nix`), not `checks`, so the per-PR **nix flake check** job never
builds them. [`.forgejo/workflows/vm-nightly.yml`](../../../.forgejo/workflows/vm-nightly.yml)
builds them. It does build the `vm-test-typecheck-<name>` checks
(`nix/vm-test-typecheck.nix`): the type check and lint the test driver runs over
a test script, on the script text alone. They evaluate no node configuration
and build no VM. They cover `hive-squid`,
`swarm-archive`, `agent-ephemeral-rootfs`, `full-setup` and `wg-hive`;
`vm-test-typecheck-control` passes only when the checker rejects a known type error, which shows the
checker resolves `test_driver`. [`.forgejo/workflows/vm-nightly.yml`](../../../.forgejo/workflows/vm-nightly.yml)
builds all of them nightly at 02:30; a failing test fails that run. To run one
by hand, start the workflow from the forge UI (Actions, vm-nightly, Run
workflow, optional `test` input), or run