Skip to content

Add Windows Sandbox E2E CI workflow with performance measurement - #126

Closed
Huzaifa Danish (huzaifa-d) wants to merge 4 commits into
mainfrom
feature/ci-sandbox-e2e
Closed

Huzaifa Danish (huzaifa-d) wants to merge 4 commits into
mainfrom
feature/ci-sandbox-e2e

Conversation

@huzaifa-d

@huzaifa-d Huzaifa Danish (huzaifa-d) commented Apr 7, 2026 •

Copy link
Copy Markdown
Contributor

Adds a GitHub Actions workflow for sandbox E2E tests, modeled after the MicroVM E2E workflow from PR #123.

Workflow: .github/workflows/sandbox-e2e.yml\

  • Builds the Rust workspace
  • Checks if Windows Sandbox is available (graceful skip if not)
  • Runs 10 E2E tests via
    un_sandbox_tests.ps1\
  • Captures per-test wall-clock timing
  • Uploads \sandbox-perf-results.json\ as artifact

Test script updates: \ est_scripts/run_sandbox_tests.ps1\

  • Added -WxcExePath\ and -ConfigDir\ parameters for CI use
  • Per-test \Stopwatch\ timing with JSON output
  • Performance summary table in output
  • Matches
    un_nanvix_tests.ps1\ pattern

Note: Windows Sandbox likely NOT available on GitHub-hosted runners. Workflow will gracefully skip with a warning if the feature isn't enabled.

Microsoft Reviewers: Open in CodeFlow

huzaifa-msft and others added 4 commits April 7, 2026 15:28
- Create .github/workflows/sandbox-e2e.yml modeled after microvm-e2e.yml
- Graceful skip if Windows Sandbox feature is not enabled on runner
- Rewrite run_sandbox_tests.ps1 with parameterized paths (-WxcExePath,
  -ConfigDir), per-test Stopwatch timing, and JSON perf output
- Performance summary table printed in CI log
- sandbox-perf-results.json uploaded as 30-day artifact
- Passes --experimental flag (sandbox is experimental)
- 45 min timeout (sandbox VM boot is slower than microvm)

All 10 E2E tests pass locally with perf timing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use Out-File -Append instead of echo >> for pwsh compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dism may leave a non-zero LASTEXITCODE that pwsh propagates as step failure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Windows Sandbox feature reports Enabled on GitHub-hosted runners but
WindowsSandbox.exe cannot boot VMs (no nested Hyper-V container support).
Unlike NanVix/MicroVM which uses WHP (works on Azure VMs), Sandbox needs
the full container infrastructure.

- Added header comments explaining the limitation
- Tests run with continue-on-error: true
- Clear warning messages when tests fail on hosted runners
- Workflow succeeds on self-hosted runners with full Sandbox support
- Added if-no-files-found: ignore for artifact upload
- Removed log upload step (no useful logs from failed sandbox boot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@huzaifa-d

Copy link
Copy Markdown
Contributor Author

Needs a custom runner. Closing as not a priority ATM.

@SohamDas2021
Soham Das (SohamDas2021) deleted the feature/ci-sandbox-e2e branch June 2, 2026 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants