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