You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
run the full Go test suite natively on windows-latest as a blocking CI gate
use the same Task-based test entry point on Windows and Linux
fix the Windows-specific product and test issues exposed by the new gate
Why this is useful
The project publishes Windows binaries and contains Windows-specific implementations for file locking, atomic writes, paths, sockets, processes, and executable handling. Cross-compilation proves that these implementations compile, but only a native Windows runner exercises their real filesystem and process semantics.
The initial observational run exposed failures in 36 packages. The fixes in this PR address those failures rather than hiding them behind continue-on-error, including:
Windows executable installation and .exe resolution
standard LSP file:// URI handling
portable HOME, path, shell, PowerShell, file-mode, and symlink behavior
deterministic resource cleanup for SQLite databases, listeners, and os.Root handles
Windows drag-and-drop path parsing and cassette path normalization
Good catch to flag — but this concern is actually unfounded for a couple of reasons.
pkg/paths/paths.go is not modified by this PR at all. It already called os.UserHomeDir() on main and this PR leaves it untouched.
Go's os.UserHomeDir() on Windows does not use $HOME. On Windows the implementation reads %USERPROFILE% (falling back to HOMEDRIVE + HOMEPATH), which is exactly what was being used before. The Unix-style $HOME lookup only applies on Linux/macOS — so there is no change from USERPROFILE to HOME here.
The new test TestGetHomeDirUsesPlatformNativeHome added by this PR is a regression guard: it deliberately sets HOME and USERPROFILE to different directories and asserts that GetHomeDir() always delegates to os.UserHomeDir(), preserving the platform-native path. Windows users will continue to find their settings under %USERPROFILE%, exactly as before.
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
area/ciCI/CD workflows and pipelinekind/choreMaintenance, deps, CI, tooling (maps to chore: commit prefix)
2 participants
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.
Summary
windows-latestas a blocking CI gateWhy this is useful
The project publishes Windows binaries and contains Windows-specific implementations for file locking, atomic writes, paths, sockets, processes, and executable handling. Cross-compilation proves that these implementations compile, but only a native Windows runner exercises their real filesystem and process semantics.
The initial observational run exposed failures in 36 packages. The fixes in this PR address those failures rather than hiding them behind
continue-on-error, including:.exeresolutionfile://URI handlingos.RoothandlesCI design
task test, matching Linux and loading.env.testValidation
Latest fully green run: https://github.com/docker/docker-agent/actions/runs/30616302947
The Windows runner reports
GOOS=windows,GOARCH=amd64,CGO_ENABLED=1, andCC=gcc.