Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
adcb184
feat: cluster test framework
DaRacci Mar 7, 2026
b01e734
chore: openspec for testing framework
DaRacci Apr 21, 2026
de92f15
docs(testing): update design docs for pre-deploy VM integration tests
DaRacci Jun 28, 2026
5516012
feat(vm-test): add NixOS VM integration testing framework for server …
DaRacci Jun 28, 2026
7171bea
refactor(test-vm): remove unused inputs param, humanize comments
DaRacci Jun 28, 2026
96be296
fix(test-vm): wire server.tests.units, fix postgres-backup scenario
DaRacci Jun 28, 2026
bfeb083
fix(test-vm): inject scenario name from directory
DaRacci Jun 28, 2026
f0978b2
docs(openspec): comprehensive-server-tests proposal, design, tasks
DaRacci Jun 28, 2026
011e1f6
feat(test): Phase 1+2 server tests — 56 targets, all pass QEMU
DaRacci Jun 28, 2026
7135633
refactor: make external imports conditional and streamline VM test in…
DaRacci Jun 29, 2026
6a41e02
test: overhaul VM tests with real sops-encrypted dummy secrets and im…
DaRacci Jun 30, 2026
d600b72
refactor(vm-tests): drop upstream-only test scenarios and auto-discov…
DaRacci Jul 1, 2026
14ec571
chore: address PR comments, remove useless tests and clean other slop
DaRacci Jul 1, 2026
5cd503f
docs(openspec): add behavioral VM integration tests for custom modules
DaRacci Jul 2, 2026
0f80484
feat(tests): add scenarios and host unit tests
DaRacci Jul 2, 2026
ee6bdc9
feat(server): complete VM integration tests for all behavior scenarios
DaRacci Jul 3, 2026
6e708f4
feat(ssh-shell): add SSH_NIX_COMMAND for one-shot remote command exec…
DaRacci Jul 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .woodpecker/test-vm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# PR-only, KVM.
# Build nixosTestConfigurations.* for affected server/scenario hosts.
# Independent of check.yaml.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

labels:
platform: linux/amd64
kvm: true

when:
- event: pull_request

steps:
- name: Build VM tests
image: registry.racci.dev/lix-woodpecker:latest
pull: true
environment:
binary_cache_token:
from_secret: binary_cache_token
commands: |
nix run .#setup-attic -- --watch
nix run .#archive-flakes -- "." "flake/nixos"

- name: Run VM tests
image: registry.racci.dev/lix-woodpecker:latest
commands: |
affected_hosts=$(git diff --name-only "origin/${CI_COMMIT_TARGET_BRANCH:-main}...HEAD" 2>/dev/null | grep -oP '(?<=^hosts/server/)[^/]+' | sort -u)
affected_scenarios=$(git diff --name-only "origin/${CI_COMMIT_TARGET_BRANCH:-main}...HEAD" 2>/dev/null | grep -oP '(?<=^tests/scenarios/)[^/]+' | sort -u)
if [ -z "$affected_hosts" ] && [ -z "$affected_scenarios" ]; then
hosts=$(nix eval .#nixosTestConfigurations --apply 'builtins.attrNames' --json | jq -r '.[]')
else
hosts=$(printf '%s\n%s' "$affected_hosts" "$affected_scenarios" | sort -u)
fi
failed=0
for host in $hosts; do
echo "::group::VM test: $host"
nix build ".#nixosTestConfigurations.$host" --no-link -L || { failed=1; echo "FAILED: $host"; }
echo "::endgroup::"
done
exit $failed
1 change: 1 addition & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
- [Adding an External Package](development/adding_an_external_package.md)
- [Declarative Gnome Dconf](development/declarative_gnome_dconf.md)
- [Using a Package/Module from a Fork](development/using_a_nix_package_or_nixos_module_from_a_separate_fork_of_nixpkgs.md)
- [VM Integration Tests](development/vm_integration_tests.md)

# Modules

Expand Down
Loading