Repository navigation
Run CI checks on Windows, macOS, and Linux - #9
Open
felipebalbi wants to merge 4 commits into
Open
felipebalbi wants to merge 4 commits into
felipebalbi wants to merge 4 commits into
Conversation
MSVC ignores the Unix linker option and emits LNK4044 warnings. Skip rpath configuration for Windows targets, where rustc DLLs are found through PATH, while preserving Unix runtime library lookup. Assisted-by: OpenCode:GPT-6.1-Sol
Treat the sysroot as a literal path when normalizing UI diagnostics. Windows path separators otherwise become regex escapes and panic the test harness before tests can run. Use the existing path matcher for both stderr and stdout without adding another dependency. Assisted-by: OpenCode:GPT-6.1-Sol
Standard-library process internals produce different call graphs on each operating system. Preserve the Linux expectations and select native platform snapshots with UI test revisions rather than skipping these tests or weakening their diagnostics. Add Windows expectations from native runs and macOS expectations from analysis targeting aarch64-apple-darwin. Parse Cargo fixture comments as TOML comments so the same revision mechanism works in both suites. Assisted-by: OpenCode:GPT-6.1-Sol
Exercise native builds, Clippy, and tests on all three platforms to catch platform-specific regressions such as the linker issue in OpenDevicePartnership#8. Keep matrix jobs independent so one failure does not cancel coverage on the other operating systems. Assisted-by: OpenCode:GPT-6.1-Sol
felipebalbi
marked this pull request as ready for review
November 10, 2026 18:06
felipebalbi
requested review from
dymk,
kat-perez,
kurtjd,
maxperga-msft and
rogurr
and
a balanced review from Copilot
November 10, 2026 18:06
felipebalbi
enabled auto-merge (squash)
November 10, 2026 18:09
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the cross-platform CI and portability changes.
No open issues 🎉
What changed in this PR
This PR extends existing CI checks to Linux, macOS, and Windows, following up on #8. It adds portability fixes for linking and the UI-test harness, plus platform-specific expectations for tests that inspect standard-library process internals.
Changes:
- Run formatting, builds, Clippy, and tests across all three operating systems with matrix fail-fast disabled.
- Skip Unix rpath flags on Windows and normalize sysroot paths literally rather than as regular expressions.
- Add OS-specific test revisions and snapshots, preserving Linux expectations and documenting snapshot updates.
| File | Description |
|---|---|
tests/ui/large_std_process.rs |
Selects OS-specific test revisions. |
tests/ui/large_std_process.host_windows.stderr |
Adds Windows process diagnostic expectations. |
tests/ui/large_std_process.host_macos.stderr |
Adds macOS process diagnostic expectations. |
tests/ui/large_std_process.host_linux.stderr |
Preserves existing Linux diagnostic expectations. |
tests/ui-cargo/fail-blacklist/Cargo.toml |
Selects OS-specific Cargo test revisions. |
tests/ui-cargo/fail-blacklist/Cargo.host_windows.stderr |
Adds Windows blacklist diagnostic expectations. |
tests/ui-cargo/fail-blacklist/Cargo.host_macos.stderr |
Adds macOS blacklist diagnostic expectations. |
tests/ui-cargo/fail-blacklist/Cargo.host_linux.stderr |
Preserves existing Linux blacklist expectations. |
tests/compile-test.rs |
Uses literal sysroot normalization and enables Cargo test directives. |
README.md |
Documents platform-specific snapshot maintenance. |
build.rs |
Skips Unix rpath configuration on Windows. |
.github/workflows/check.yml |
Adds the three-OS check matrix with fail-fast disabled. |
Review effort: Balanced
kurtjd
approved these changes
Nov 10, 2026
Wassasin
approved these changes
Nov 12, 2026
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.
Summary
Follow up on the cross-platform CI coverage requested in #8.
The three portability fixes are separate commits preceding the workflow change. Dependency-policy checks and PR-comment workflows remain Linux-only.
Validation
All existing check-job commands passed locally on Windows without warnings, using
RUSTFLAGS="-D warnings",CARGO_INCREMENTAL=0, andCARGO_PROFILE_DEV_DEBUG=0:cargo fetch --lockedcargo fmt --all --checkcargo build --lockedcargo build --locked --testscargo clippy --lockedcargo test --locked— 10 UI tests and 3 Cargo tests passed; other platforms' revisions were correctly ignored.The updated check workflow also passes
actionlint.Windows snapshots were generated natively. macOS snapshots were generated by cross-target analysis for
aarch64-apple-darwinon Windows; native macOS and Linux verification remains for CI. Linux snapshot contents are unchanged.