Repository navigation
Conversation
PRs and pushes run the `tests` job on windows-11-arm. The `app` job stays on windows-2022 and keeps packaging and installer-testing the shipped x86_64 build. x64 coverage for the test suites (user decision, option b) comes from a nightly schedule. It runs `tests` alone on windows-2022, cold: no Rust cache restored or saved. windows-ci-setup gains release.yml's clang step for aarch64 ring builds, its x64-or-arm64 fxc lookup, and a rust-cache switch. rust-cache now saves only on pushes to main, so scheduled and dispatch runs on main never write an entry. rust-cache keys by OS and architecture, so arm64 gets its own windows-tests entry, which replaces the x64 one. The host-triple rust-lld config from 05 already covers aarch64-pc-windows-msvc. A new script, test-windows-linker.ps1, reports a binary's PE machine and whether it was linked by rust-lld or link.exe (the Rich header). The app job's inline linker check moves into it, and the tests job now runs it on the roboco.exe its CLI tests ran. tests pins node 24 for the Cursor shim suite on both architectures. The runner input is split into tests_runner and app_runner, and a new rust_cache input reproduces the nightly's cold build by dispatch.
…i-speed 15) The first arm64 run failed three ConPTY tests on all three tries (roboco-engine terminals::windows_tests: open_with_command_delivers_ the_exact_command_to_conpty, conpty_unicode_cwd_resize_replay_and_exit, conpty_cleanup_kills_descendants_on_close_shutdown_and_drop). Each one stalled at the first non-core cmdlet that Windows PowerShell 5.1 ran. Timing on both images (scratch run 40769851192): on windows-11-arm, Split-Path, Set-Content or Start-Process takes 22-23 s in every new powershell.exe. The module analysis cache starts cold and scans the whole PSModulePath, Az included, until one process completes a full Get-Command (117 s). After that the same command takes 0.3 s. windows-2022 takes 0.2 s from the start. On arm64 the tests job now starts that Get-Command in the background as its first step, and joins it right before the tests. The join step fails, by name, if a new powershell.exe still needs more than 5 s for Split-Path.
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.
Ticket:
.scratch/ci-speed/issues/15-windows-tests-arm64.md(coverage option (b), user decision 2026-10-29).testsruns onwindows-11-armfor PRs and pushes;appstays onwindows-2022(packages, installs and smoke-tests the shipped x64 build).schedule, 04:11 UTC):testsalone onwindows-2022, cold, with no Rust cache restore or save.windows-ci-setup: clang for aarch64ring, x64-or-arm64 fxc lookup, arust-cacheswitch. rust-cache saves only on pushes to main. rust-cache keys by architecture, so arm64 gets its ownwindows-testsentry, which replaces the x64 one. rust-lld already applies per host triple (05).scripts/test-windows-linker.ps1: PE machine + Rich-header linker check, now run by both jobs.tests_runner,app_runner(replacesrunner),rust_cache.Measurements and the A/B pair are in the ticket's Comments.