hyperhive/nix/modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 58cc720173 nix(ci): gate the actions runner on nix-daemon readiness
After a hive-ci restart the act_runner re-registers and immediately claims
any queued jobs, which can beat the in-container nix daemon coming up: its
nix-daemon.socket carries ConditionPathIsReadWrite=/nix/var/nix/daemon-socket
and is skipped until /nix/var is read-write, so the first nix-dependent
build dispatches into a cold daemon and hangs/retries (observed: a 55m48s
nix flake check vs the normal ~30s — a build-offload stall, not a code
failure; a non-nix step on the same runner passed in 1s, masking it).

Ordering the runner after/wants nix-daemon.socket does not help — a
condition-skipped unit satisfies systemd ordering immediately. Instead add
a blocking ExecStartPre that polls until the daemon actually answers
(nix store ping), placed with mkBefore so it runs ahead of the upstream
module's runner-registration ExecStartPre. The runner therefore cannot
register or claim jobs until nix is usable. Topology-agnostic (works
whether the daemon is in-container or a shared host socket); ~180s ceiling
then the unit fails cleanly rather than claiming jobs into a dead daemon.

Eval-proven: gitea-runner-hive's ExecStartPre is
[wait-nix-daemon, gitea-register-runner-hive] in that order.
2026-06-17 21:17:35 +02:00
..
hive-c0re.nix nix(tls): host hive-CA + gateway leaf for self-signed mode 2026-06-17 19:04:52 +02:00
hive-ci.nix nix(ci): gate the actions runner on nix-daemon readiness 2026-06-17 21:17:35 +02:00
hive-forge.nix nix(gateway): self-signed TLS as the implicit default, deprecate the toggle 2026-06-17 21:14:05 +02:00
hive-gateway.nix nix(gateway): self-signed TLS as the implicit default, deprecate the toggle 2026-06-17 21:14:05 +02:00
hive-matrix.nix nix: remove the non-isolated (shared-netns) mode 2026-06-17 15:29:52 +02:00
hive-network.nix nix: remove the non-isolated (shared-netns) mode 2026-06-17 15:29:52 +02:00
hive-tls.nix nix(gateway): self-signed TLS as the implicit default, deprecate the toggle 2026-06-17 21:14:05 +02:00