Skip to content

Add Windows 11 ARM to CI test matrix and simplify matrix infrastructure#396

Merged
currantw merged 16 commits into
valkey-io:mainfrom
currantw:currantw/383_add_missing_windows11_to_tests
May 14, 2026
Merged

Add Windows 11 ARM to CI test matrix and simplify matrix infrastructure#396
currantw merged 16 commits into
valkey-io:mainfrom
currantw:currantw/383_add_missing_windows11_to_tests

Conversation

@currantw
Copy link
Copy Markdown
Collaborator

@currantw currantw commented May 13, 2026

Summary

Add Windows 11 ARM (windows-11-arm) to the full CI test profile, enabling build and unit test validation on aarch64-pc-windows-msvc. Integration tests are skipped because WSL2 is unavailable on GitHub's ARM Windows runner VMs (no nested virtualization). Also simplifies the CI matrix by lowercasing keys and removing redundant fields.

Issue Link

Closes #383.

Features and Behaviour Changes

  • The windows-11-arm runner now participates in full CI profile.
  • Unit tests run on all platforms; integration tests are skipped on aarch64-pc-windows-msvc.
  • The test workflow now has separate "Unit tests" and "Integration tests" steps (previously a single combined step).
  • CI matrix JSON keys are now lowercase for consistency.
  • Removed unused ARCH and NAMED_OS matrix fields.
  • Dead failure-reporting infrastructure removed (report-failures.yml, create_failures_json.sh).

Implementation

  • Test split: The test-with-runners job now runs dotnet test tests/Valkey.Glide.UnitTests/ unconditionally, then runs dotnet test tests/Valkey.Glide.IntegrationTests/ gated on matrix.host.target != 'aarch64-pc-windows-msvc'. DNS configuration is inlined into the integration test step.
  • install-shared-dependencies: WSL setup guard simplified to check target directly. Server installation skipped for aarch64-pc-windows-msvc.
  • install-server: Removed os and target inputs. Uses runner.os for shell selection and WSL env passthrough. Cache key uses runner.os-runner.arch instead of the Rust target triple.
  • Matrix keys: All keys lowercased (OSos, RUNNERrunner, TARGETtarget, IMAGEimage). load_matrices.py and cd.yml jq filter updated accordingly.

Limitations

  • Integration tests cannot run on windows-11-arm due to the lack of WSL2/nested virtualization on GitHub's ARM Windows runner VMs. See Add Windows 11 arm64 to standard and full CI test matrix #383.
  • Artifact names now use GitHub's capitalized runner.arch values (X64, ARM64) instead of the previous lowercase format.

Testing

  • Test pipeline passes, including for Windows 11 runner.

Related Issues

Checklist

  • This Pull Request is related to one issue.
  • Commit message has a detailed description of what changed and why.
  • Tests are added or updated and all checks pass. CI infrastructure change; no application tests to add.
  • CHANGELOG.md, README.md, DEVELOPER.md, and other documentation files are updated.
  • Destination branch is correct - main or release
  • Create merge commit if merging release branch into main, squash otherwise.

currantw added 5 commits May 12, 2026 18:38
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
@currantw currantw self-assigned this May 13, 2026
@currantw currantw added ci CI/CD pipelines and GitHub Actions tests Unit tests, integration tests, or test utilities release-1.2 Targeted for release 1.2 labels May 13, 2026
currantw added 2 commits May 13, 2026 09:27
Signed-off-by: currantw <taylor.curran@improving.com>
… into currantw/383_add_missing_windows11_to_tests
@currantw currantw force-pushed the currantw/383_add_missing_windows11_to_tests branch from ffe2799 to 68d3d08 Compare May 13, 2026 16:28
The cluster FlushDatabaseAsync tests were flaky because the default
flush mode is ASYNC (since Valkey 6.2+), causing a race between the
background flush and subsequent assertions. Using FlushMode.Sync
ensures the flush completes on all primaries before asserting.

Signed-off-by: currantw <taylor.curran@improving.com>
Comment thread .github/actions/install-server/action.yml
Signed-off-by: currantw <taylor.curran@improving.com>
Comment thread .github/json_matrices/os-matrix.json
Comment thread .github/json_matrices/os-matrix.json
Comment thread .github/workflows/report-failures.yml
Comment thread .github/workflows/test.yml
Comment thread tests/Valkey.Glide.IntegrationTests/FlushDatabaseTests.cs
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Expands CI coverage by enabling Windows 11 ARM (windows-11-arm) in the standard/full test profiles and simplifies the matrix schema and related workflow plumbing. This also restructures the test workflow to run unit tests separately from integration tests, skipping integration tests on Windows ARM due to WSL limitations.

Changes:

  • Add windows-11-arm to standard and full profiles; lowercase host matrix keys and remove redundant host fields.
  • Split CI into separate unit/integration test steps and gate integration tests on non-Windows-ARM targets.
  • Remove unused failure-reporting infrastructure and simplify server installation action inputs.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/Valkey.Glide.IntegrationTests/FlushDatabaseTests.cs Makes cluster flush tests explicitly synchronous to avoid timing/flakiness.
.github/workflows/test.yml Adds Windows ARM to matrix usage, lowercases matrix key references, and splits unit vs integration test execution (with ARM gating).
.github/workflows/scripts/create_failures_json.sh Removes failure summary generation script (no longer used).
.github/workflows/report-failures.yml Removes the dedicated “failure reporter” workflow.
.github/workflows/cd.yml Updates jq filters and matrix key references to the new lowercase host schema.
.github/json_matrices/os-matrix.json Lowercases host keys and includes windows-11-arm in standard/full profiles.
.github/json_matrices/load_matrices.py Updates host/container detection for image key and fixes output formatting indentation.
.github/actions/install-shared-dependencies/action.yml Adjusts WSL/server installation gating based on runner.os/runner.arch and removes redundant inputs passed to install-server.
.github/actions/install-server/action.yml Removes os/target inputs and uses runner context for WSL/shell selection and cache keying.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/json_matrices/os-matrix.json
Comment thread .github/actions/install-shared-dependencies/action.yml Outdated
Comment thread .github/actions/install-shared-dependencies/action.yml Outdated
Comment thread .github/actions/install-server/action.yml
currantw added 4 commits May 13, 2026 11:15
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
Signed-off-by: currantw <taylor.curran@improving.com>
@currantw currantw removed the request for review from xShinnRyuu May 13, 2026 21:37
currantw added 2 commits May 13, 2026 16:10
… into currantw/383_add_missing_windows11_to_tests
… into currantw/383_add_missing_windows11_to_tests

Signed-off-by: currantw <taylor.curran@improving.com>
@currantw currantw enabled auto-merge (squash) May 14, 2026 17:14
@currantw currantw requested review from xShinnRyuu and removed request for Aryex May 14, 2026 18:46
Comment thread .github/json_matrices/os-matrix.json
@currantw currantw merged commit 6c31dbb into valkey-io:main May 14, 2026
14 of 15 checks passed
@currantw currantw deleted the currantw/383_add_missing_windows11_to_tests branch May 14, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD pipelines and GitHub Actions release-1.2 Targeted for release 1.2 tests Unit tests, integration tests, or test utilities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Windows 11 arm64 to standard and full CI test matrix

4 participants