summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/.github/workflows/windows.yml
blob: ec37c714b085106d0fbbbe9d65ff9c5ed2f44159 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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@v3

      # 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