Skip to content

Add Windows Docker (WSL2) tier-1 integration tests#8742

Merged
roger-zhangg merged 65 commits intodevelopfrom
wsl_tests
Mar 10, 2026
Merged

Add Windows Docker (WSL2) tier-1 integration tests#8742
roger-zhangg merged 65 commits intodevelopfrom
wsl_tests

Conversation

@roger-zhangg
Copy link
Copy Markdown
Member

@roger-zhangg roger-zhangg commented Mar 6, 2026

Summary

Adds Windows tier-1 integration tests running Docker via WSL2, alongside the existing Linux Finch tier-1 tests.

Changes

New Windows test suites

  • tier1-windows-build-1: Python, .NET, Node, main build tests
  • tier1-windows-build-2: Java, Rust, Provided, ARM64 build tests
  • tier1-windows-build-3: Go, Ruby, Terraform, remaining build tests
  • tier1-windows-other: Local invoke, start-api, start-lambda, validate, and other non-build tests

Infrastructure

  • WSL2 Docker setup via Vampire/setup-wsl action with Ubuntu 24.04 (installed on D: drive for disk space)
  • tests/setup_wsl2_docker.sh: Installs Docker in WSL2 and exposes on TCP
  • tests/free_disk_space_windows.sh: Non-blocking cleanup of pre-installed SDKs
  • tests/install-maven-gradle.sh, tests/install-terraform.sh: Cross-platform installer scripts
  • tests/install-rust.sh: Updated with choco install zig for Windows, --uv flag support
  • tests/install-sam-cli-binary.sh: Windows MSI support

Changes

New Windows test suites

  • tier1-windows-build-1: Python, .NET, Node, main build tests
  • tier1-windows-build-2: Java, Rust, Provided, ARM64 build
  • tier1-windows-build-3: Go, Ruby, Terraform, remaining build
  • tier1-windows-other: Local invoke, start-api, start-lambda, valiin

Infrastructure

  • WSL2 Docker setup via Vampire/setup-wsl action with Ubuntu 24.04 (installe - WSL2 Docker setou- tests/setup_wsl2_docker.sh`: Installs Docker in WSL2 and exposes on TCP
  • tests/free_disk_space_windole- tests/free_disk_space_windows.sh: Non-blocking cleanup of pre-installon- tests/install-maven-gradle.sh, tests/install-terraform.sh: Cross-platfo i- tests/install-rust.sh: Updated with choco install zigfor Windows,--uvflag support -pe-tests/installmaven-gradle.sh, tests/install-terraform.sh`: Cross-platform installer scripts
  • tests/install-rust.sh: Updated with choco install zig for Windows, --uv flag support
  • tests/install-sam-cli-binary.sh: Windows MSI support with AWSSAMCLI_NIGHTLY detection and SAM_WINDOWS_BINARY_PATH
  • tests/setup-python-uv.sh: Python version management via uv
  • tests/setup_testing_resources.py: Consolidated credential setup, ECR login (with retry), and credential clearing into one script

Fixes

  • CRLF line ending fix for shell scripts in testdata (Windows checkout adds \r)
  • ECR login retry logic for clock skew on Windows
  • Terraform provider version updates for test compatibility
  • reset_testing_resources.py: Search workspace root for reports, non-fatal account reset errors

Known Issues

Windows durable function tests (test_invoke_durable, test_callback, test_execution) are failing in tier1-windows-other. The durable functions emulator has issues with temp directory handling when Docker runs via WSL2 — a subsequent PR will address this specifically.

@roger-zhangg
Copy link
Copy Markdown
Member Author

Copy link
Copy Markdown
Contributor

@vicheey vicheey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for spliting the setup. Overall, this PR looks good.
I see that there are 3 inline comments about how we slip the build suites but commented but not be sufficient for a future maintainer to notice or understand. We should document the rationale and methodology in one for the README.

vicheey
vicheey previously approved these changes Mar 9, 2026
@roger-zhangg
Copy link
Copy Markdown
Member Author

latest run:
https://github.com/aws/aws-sam-cli/actions/runs/22886603631
still, please ignore the dar test failure in windows tests. Will address that in another PR

Copy link
Copy Markdown
Contributor

@reedham-aws reedham-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! I'm surprised the windows setup takes only ~90 seconds. Much faster than I thought it would be, must be the caching.

@roger-zhangg roger-zhangg added this pull request to the merge queue Mar 10, 2026
Merged via the queue into develop with commit a1859d3 Mar 10, 2026
44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants