Skip to content

CI: factor Windows setup into composite actions; add plain-Windows jobs - #5342

Open
jandubois wants to merge 1 commit into
lima-vm:masterfrom
jandubois:ci-plain-windows-jobs
Open

CI: factor Windows setup into composite actions; add plain-Windows jobs#5342
jandubois wants to merge 1 commit into
lima-vm:masterfrom
jandubois:ci-plain-windows-jobs

Conversation

@jandubois

@jandubois jandubois commented Jul 26, 2026

Copy link
Copy Markdown
Member

Move the Windows runner setup out of test.yml into reusable composite actions, and add windows-plain-{wsl2,qemu} jobs that run Lima on a host with Git for Windows, MSYS2, and Cygwin removed. The plain-host action checks the toolchain is gone across filesystem, PATH, known binaries, and registry, and that the native OpenSSH client is present, so a runner-image change in either direction fails loudly instead of masking a regression.

With test.yml no longer setting _LIMA_WINDOWS_EXTRA_PATH, that env var loses its last user, so the implementation and its docs entry go too. It prepended C:\Program Files\Git\usr\bin to limactl's PATH, which is how the MSYS2 jobs got a Cygwin ssh.

The MSYS2 jobs install openssh in its place, so they keep exercising the Cygwin toolchain while the plain jobs exercise the native one. They also gain rsync. Without it hack/test-templates.sh skips its rsync copy backend instead of failing, so the path conversion that backend performs on Windows never runs.

The "windows" job id becomes "windows-wsl2". Its name: is unchanged, so required status checks are unaffected.

Note that the new plain-Windows jobs run limactl copy in both directions on a host with no Cygwin toolchain, which is what #5299 fixes, so expect them to fail until that lands.

A separate do-not-merge branch runs these jobs together with #5299, #5300, #5337, #5340 and #5341.

Assisted-by: Claude Opus 5

Move the Windows runner setup out of test.yml into reusable composite
actions, and add windows-plain-{wsl2,qemu} jobs that run Lima on a host
with Git for Windows, MSYS2, and Cygwin removed. The plain-host action
checks the toolchain is gone across filesystem, PATH, known binaries,
and registry, and that the native OpenSSH client is present, so a
runner-image change in either direction fails loudly instead of masking
a regression.

The plain-host check can prove the OpenSSH binaries exist but not which
ssh limactl will resolve, so the selection rules gain unit tests next to
the code that implements them.

With test.yml no longer setting _LIMA_WINDOWS_EXTRA_PATH, that env var
loses its last user, so drop the implementation and its docs entry. It
prepended C:\Program Files\Git\usr\bin to limactl's PATH, which is how
the MSYS2 jobs got a Cygwin ssh.

The MSYS2 jobs install openssh in its place, so they keep exercising the
Cygwin toolchain while the plain jobs exercise the native one. They also
gain rsync. Without it hack/test-templates.sh skips its rsync copy
backend instead of failing, so the path conversion that backend performs
on Windows never runs.

The "windows" job id becomes "windows-wsl2". Its name: is unchanged, so
required status checks are unaffected.

Signed-off-by: Jan Dubois <jan.dubois@suse.com>
@jandubois

Copy link
Copy Markdown
Member Author

@jandubois
jandubois marked this pull request as ready for review July 29, 2026 06:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants