| name: windows | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| jobs: | |
| test: | |
| runs-on: windows-latest | |
| name: (${{ matrix.target }}, ${{ matrix.cfg_release_channel }}) | |
| env: | |
| CFG_RELEASE_CHANNEL: ${{ matrix.cfg_release_channel }} | |
| strategy: | |
| # https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions#usage-limits | |
| # There's a limit of 60 concurrent jobs across all repos in the rust-lang organization. | |
| # In order to prevent overusing too much of that 60 limit, we throttle the | |
| # number of rustfmt jobs that will run concurrently. | |
| max-parallel: 2 | |
| fail-fast: false | |
| matrix: | |
| target: [ | |
| i686-pc-windows-gnu, | |
| i686-pc-windows-msvc, | |
| x86_64-pc-windows-gnu, | |
| x86_64-pc-windows-msvc, | |
| ] | |
| cfg_release_channel: [nightly, stable] | |
| steps: | |
| # The Windows runners have autocrlf enabled by default | |
| # which causes failures for some of rustfmt's line-ending sensitive tests | |
| - name: disable git eol translation | |
| run: git config --global core.autocrlf false | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| # Run build | |
| - name: Install Rustup using win.rustup.rs | |
| run: | | |
| # Disable the download progress bar which can cause perf issues | |
| $ProgressPreference = "SilentlyContinue" | |
| Invoke-WebRequest https://win.rustup.rs/ -OutFile rustup-init.exe | |
| .\rustup-init.exe -y --default-host=x86_64-pc-windows-msvc --default-toolchain=none | |
| del rustup-init.exe | |
| rustup target add ${{ matrix.target }} | |
| shell: powershell | |
| - name: Add mingw32 to path for i686-gnu | |
| run: | | |
| echo "C:\msys64\mingw32\bin" >> $GITHUB_PATH | |
| if: matrix.target == 'i686-pc-windows-gnu' && matrix.channel == 'nightly' | |
| shell: bash | |
| - name: Add mingw64 to path for x86_64-gnu | |
| run: echo "C:\msys64\mingw64\bin" >> $GITHUB_PATH | |
| if: matrix.target == 'x86_64-pc-windows-gnu' && matrix.channel == 'nightly' | |
| shell: bash | |
| - name: Build and Test | |
| shell: cmd | |
| run: ci\build_and_test.bat |