Skip to main content

CI003-no-windows-job

Dimension: ci_release Default severity: Low Languages: Rust (project-level) CWE: (none)

What it detects​

Fires when CI configuration exists and no workflow file mentions a Windows runner: windows-latest, windows-2019, or windows-2022.

Why it matters​

Path separator differences (/ vs \), FFI ABI differences, and Windows-specific API behaviour can cause failures that only appear on Windows. Crates published on crates.io are expected to work cross-platform; without a Windows CI job, platform-specific bugs may reach users.

Example — flagged​

# Only Ubuntu runner
runs-on: ubuntu-latest

Example — not flagged​

strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}

Fix guidance​

Add a Windows runner to your CI matrix:

strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo test --locked

References​