Repository navigation
feat(e2e): add standalone Windows connectivity test and Nix image build - #173
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Windows connectivity needs a real guest test: this adds one fixed
win1 <-> linux <-> win2topology and runs three consecutive ping replies in both directions between the Windows nodes, plus both directions between win1 and Linux.Run locally with:
The standalone Python/WinRM test uses QEMU/KVM, Ubuntu's fixed OVMF paths, two fresh qcow2 overlays, and a Linux Docker container. It builds Nylon, installs Wintun, disables guest firewalls, starts Nylon as SYSTEM, saves logs, and cleans up the guests and network. The existing Linux e2e harness and Go dependencies are unchanged.
Keep the Windows IPv4 alias at /32 and preserve selected route prefixes individually on Windows. Reverting these fixes reproduced a win2-to-win1 timeout; Linux and macOS retain route aggregation, and explicitly advertised subnets remain intact.
CI builds
github:starcatmeow/nylon-ci-windows-image/main#nylon-ci-win2025, decompresses the qcow2, and passes its path through a step output to the same script. Nix reads the public R2 cache athttps://pub-b7e688bb852e422d84f49c2dce8e3461.r2.devand verifies signatures withnylon-cache-1:B87/nHkgelYp2qg2AsYQ+Hmsg99ErIbbvkFCfS7u2WI=. Cache misses build locally, and download failures explicitly enable fallback. CI does not read R2 secrets or upload cache contents; the signed final image output can be published separately.Validation:
TestConnectivitypassed.go test -race -tags=router_test ./corepassed.GitHub-hosted execution was not exercised locally. The previous generic machine/preflight framework has been removed; the final diff against main is 7 files, +312/-7.