From 479be5c90159ce89727f5638d84b596b12bf2462 Mon Sep 17 00:00:00 2001 From: Alisa Sireneva Date: Thu, 23 Jan 2025 09:25:48 +0300 Subject: [PATCH] Test Windows gnullvm targets on CI --- .github/workflows/ci.yml | 51 ++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 758ff7a..a5d6a9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,46 +192,51 @@ jobs: fail-fast: false matrix: arch: [x86_64, i686] - abi: [msvc, gnu] + abi: [msvc, gnu, gnullvm] env: + host: ${{ matrix.arch }}-pc-windows-${{ matrix.abi == 'gnullvm' && 'gnu' || matrix.abi }} target: ${{ matrix.arch }}-pc-windows-${{ matrix.abi }} + defaults: + run: + shell: bash steps: - name: Checkout uses: actions/checkout@v4 - name: Set default-host - run: rustup set default-host ${{ env.target }} + run: rustup set default-host $host - name: Install Rust run: rustup update nightly && rustup default nightly + - name: Configure target + if: matrix.abi == 'gnullvm' + run: > + echo "[target.${{ matrix.arch }}-pc-windows-gnullvm]" >~/.cargo/config.toml && + echo "linker = 'clang.exe'" >>~/.cargo/config.toml && + echo "rustflags = ['-C', 'link-arg=-fuse-ld=lld']" >>~/.cargo/config.toml + - name: Add target + if: matrix.abi == 'gnullvm' + run: rustup target add $target - name: Test with panic backend (debug) - shell: bash - run: LITHIUM_BACKEND=panic ci/cargo-save "Test with panic backend (debug)" test + run: LITHIUM_BACKEND=panic ci/cargo-save "Test with panic backend (debug)" test --target $target - name: Test with SEH backend (debug) if: matrix.abi == 'msvc' - shell: bash - run: LITHIUM_BACKEND=seh ci/cargo-save "Test with SEH backend (debug)" test + run: LITHIUM_BACKEND=seh ci/cargo-save "Test with SEH backend (debug)" test --target $target - name: Test with Itanium backend (debug) - if: matrix.abi == 'gnu' - shell: bash - run: LITHIUM_BACKEND=itanium ci/cargo-save "Test with Itanium backend (debug)" test + if: matrix.abi == 'gnu' || matrix.abi == 'gnullvm' + run: LITHIUM_BACKEND=itanium ci/cargo-save "Test with Itanium backend (debug)" test --target $target - name: Test with std thread locals (debug) - if: matrix.abi == 'msvc' - run: LITHIUM_THREAD_LOCAL=std ci/cargo-save "Test with std thread locals (debug)" test - shell: bash + if: matrix.abi == 'msvc' || matrix.abi == 'gnullvm' + run: LITHIUM_THREAD_LOCAL=std ci/cargo-save "Test with std thread locals (debug)" test --target $target - name: Test with panic backend (release) - shell: bash - run: LITHIUM_BACKEND=panic ci/cargo-save "Test with panic backend (release)" test --release + run: LITHIUM_BACKEND=panic ci/cargo-save "Test with panic backend (release)" test --target $target --release - name: Test with SEH backend (release) if: matrix.abi == 'msvc' - shell: bash - run: LITHIUM_BACKEND=seh ci/cargo-save "Test with SEH backend (release)" test --release + run: LITHIUM_BACKEND=seh ci/cargo-save "Test with SEH backend (release)" test --target $target --release - name: Test with Itanium backend (release) - if: matrix.abi == 'gnu' - shell: bash - run: LITHIUM_BACKEND=itanium ci/cargo-save "Test with Itanium backend (release)" test --release + if: matrix.abi == 'gnu' || matrix.abi == 'gnullvm' + run: LITHIUM_BACKEND=itanium ci/cargo-save "Test with Itanium backend (release)" test --target $target --release - name: Test with std thread locals (release) - if: matrix.abi == 'msvc' - run: LITHIUM_THREAD_LOCAL=std ci/cargo-save "Test with std thread locals (release)" test --release - shell: bash + if: matrix.abi == 'msvc' || matrix.abi == 'gnullvm' + run: LITHIUM_THREAD_LOCAL=std ci/cargo-save "Test with std thread locals (release)" test --target $target --release - name: Upload built tests for Wine uses: actions/upload-artifact@v4 with: @@ -257,7 +262,7 @@ jobs: # - os: ubuntu-24.04-arm # ubuntu_arch: arm64 # rust_arch: aarch64 - abi: [msvc, gnu] + abi: [msvc, gnu, gnullvm] env: WINEDEBUG: fixme+all,err+all # :ferrisClueless: target: ${{ matrix.machine.rust_arch }}-pc-windows-${{ matrix.abi }}