5252 os : windows-2022
5353 features : " "
5454 target : " x86_64-pc-windows-msvc"
55+ - rust : stable-x86_64-gnu
56+ os : windows-2022
57+ features : " "
58+ target : " x86_64-pc-windows-gnullvm"
5559 steps :
5660 - name : Checkout sources
5761 uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
7377 toolchain : " ${{matrix.rust}}"
7478 targets : " ${{ matrix.target }}"
7579 if : matrix.os == 'windows-2022'
80+ - name : install llvm-mingw
81+ run : |
82+ curl -L -o llvm-mingw.zip https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-x86_64.zip
83+ unzip llvm-mingw.zip -d llvm-mingw
84+ echo "CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER=$(pwd)/llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe" >> $GITHUB_ENV
85+ if : matrix.target == 'x86_64-pc-windows-gnullvm'
7686 - name : target
7787 run : " rustc -vV | sed -n 's|host: ||p'"
7888 if : matrix.os != 'windows-2022'
8292 tool : cargo-llvm-cov,cargo-nextest
8393 - name : cargo build
8494 run : cargo build --target ${{matrix.target}} ${{ matrix.features }}
95+ env :
96+ CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER : " llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe"
8597 - name : cargo build (no_std)
8698 run : cargo rustc --target ${{matrix.target}} -p libbz2-rs-sys --lib --no-default-features --crate-type rlib
8799 env :
@@ -96,10 +108,25 @@ jobs:
96108 env :
97109 RUST_BACKTRACE : 1
98110 - name : cargo nextest
99- if : matrix.os == 'windows-2022'
111+ if : matrix.target == 'x86_64-pc-windows-gnullvm'
112+ run : |
113+ $env:PATH = "${{ github.workspace }}\llvm-mingw\llvm-mingw-20250709-ucrt-x86_64\bin;" + $env:PATH
114+ $env:PATH = "${{ github.workspace }}\llvm-mingw\llvm-mingw-20250709-ucrt-x86_64\lib;" + $env:PATH
115+ $env:PATH = "${{ github.workspace }}\llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/x86_64-w64-mingw32/lib;" + $env:PATH
116+ # $env:CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER = "llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe"
117+ mkdir -Force .cargo
118+ echo '[target.x86_64-pc-windows-gnullvm]' > .cargo/config.toml
119+ echo 'linker = "llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe"' >> .cargo/config.toml
120+ cargo test --target ${{matrix.target}} ${{ matrix.features }} --no-fail-fast
121+ env :
122+ RUST_BACKTRACE : 1
123+ # CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER: "llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe"
124+ - name : cargo nextest
125+ if : matrix.os == 'windows-2022' && matrix.target != 'x86_64-pc-windows-gnullvm'
100126 run : cargo nextest run --target ${{matrix.target}} ${{ matrix.features }} --no-fail-fast
101127 env :
102128 RUST_BACKTRACE : 1
129+ CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER : " llvm-mingw/llvm-mingw-20250709-ucrt-x86_64/bin/x86_64-w64-mingw32-clang.exe"
103130 - name : Upload coverage to Codecov
104131 uses : codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
105132 if : matrix.os != 'windows-2022' && matrix.rust == 'stable'
0 commit comments