test(forge): add the forge-test VM runner (gate step for #678) #760
No reviewers
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea!760
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/forge-test-runner"
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?
Summary
Adds scripts/forge-vm/run-forge-tests.sh, the gate step that ADR 0052 and #678 call for. It resets the forge-test VM to its base snapshot, pushes the committed tree into the VM with git archive of HEAD, and runs the forge-tagged go test as the non-root test user over incus exec. Pushing rather than mounting means the VM holds no live handle on the host tree, there is no disk-device mount to linger or go resource-busy, and the run is always the frozen committed state. Also hardens provision.sh to remove stray devices and assert the device set (the old abandoned cache mount was breaking a clean start), and documents the runner in the forge-vm README. The run passes green against real throwaway Forgejo and Gitea servers. Refs #678. The remaining #678 work, wiring this into CI and migrating the fake-server tests, stays open.