Add automated tests and linting for update scripts and Forgejo workflow #56
Labels
No labels
host:electra
host:fleet
host:lyra
host:vega
host:vega
phase:cutover
phase:deploy
phase:mcp
phase:module
phase:packaging
phase:prep
phase:validation
project:attic-postgres-lyra-rollout
project:auto-update-reliability
project:declarative-purity-cleanup
project:external-review
project:host-facts-refactor
project:lyra-nixos-deploy
project:lyra-service-stack-migration
project:nebula-mesh-network
project:security-hardening
project:service-stack-migration
project:vega-sillytavern-cutover
service:auto-update
service:mem0
service:sillytavern
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nimmo/nixos-config#56
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The emergency local path is explicitly documented as untested and able to bitrot. The detached helper regression and null-revision regression both crossed shell/Nix/systemd boundaries that syntax checks alone do not cover. No repository test currently exercises the full update state machine.
The live revision-provenance work in #54 is complete. Its remaining historical migration case—an active legacy generation with a missing revision—belongs here because it can be tested safely and deterministically without deliberately degrading a live host.
Scope
git,nixos-rebuild,systemd-run, notification, and power/network commands.Completion criteria
nix flake checkor an equivalent required Forgejo check.Phase-one regression coverage is complete in local isolated branch
test/auto-update-regressions, commit1720a85(test: add auto-update regression coverage); intentionally not pushed before the evening live updater test.Coverage added:
env -i;just test-auto-updateprovides the local entry point;.#hostselectors can activate another host's configuration.Validation: regression suite passed, ShellCheck passed, actionlint passed with only the configured custom Nova runner-label exception, and full
nix flake checkpassed all hosts. Remaining issue scope: switch success/failure fixtures, locking/hold races, revision state table, workflow-event table, shared-policy rollback/partial acceptance, and emergency producer mode.Phase-one regression coverage is now merged and pushed on
mainasefdfc41(test: add auto-update regression coverage). Pre-push validation passed: ShellCheck, actionlint,just test-auto-update,git diff --check, and fullnix flake checkfor all hosts. Forgejo run #311 is queued to exercise the new required workflow; Attic run #310 is building the current closures. Issue remains open for the deeper phase-two state-machine coverage listed above.Tracking moved from #54: add a hermetic regression for a legacy active generation whose
configurationRevisionis missing. The test must prove exactly one activation records the candidate revision and that the immediate follow-up exits before build.Completed and validated.
Implemented in:
769e8c3— added table-driven workflow routing, shell regression coverage, and the required NixOS KVM state-machine check.19363f8— fixed Forgejo CI environment isolation and made the regression/lint job a prerequisite gate for the Attic build, with ntfy notification on gate failure.Coverage now includes:
Validation:
nix flake checkpassed across all four host configurations and the KVM state-machine test;The emergency path is no longer documented as untested. The regression gate now blocks closure builds and publication when validation fails.