From d1e5891c6a508f56e12abada8c5535fd28860785 Mon Sep 17 00:00:00 2001 From: Patryk Obara Date: Fri, 6 Dec 2019 12:48:28 +0100 Subject: [PATCH] Reorganize Windows workflow file Move MSYS2 jobs up (these jobs will be updated often, due to warning limits), and use the same matrix style as Linux and macOS jobs. Move MSVC jobs down, so the future release build will be closer to the end of file. --- .github/workflows/windows.yml | 107 ++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 49 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index b42760a1..39940866 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,13 +1,66 @@ name: Windows builds on: push -env: - MAX_WARNINGS_GCC_32bit_Debug: 229 - MAX_WARNINGS_GCC_64bit_Debug: 304 - MAX_WARNINGS_Clang_32bit_Debug: 98 - MAX_WARNINGS_Clang_64bit_Debug: 142 jobs: + build_windows_msys2: + name: ${{ matrix.conf.compiler }} ${{ matrix.conf.bits }}-bit + runs-on: windows-latest + strategy: + matrix: + conf: + - compiler: GCC + bits: 32 + arch: i686 + max_warnings: 229 + - compiler: GCC + bits: 64 + arch: x86_64 + max_warnings: 304 + - compiler: Clang + bits: 32 + arch: i686 + max_warnings: 98 + - compiler: Clang + bits: 64 + arch: x86_64 + max_warnings: 142 + env: + CHERE_INVOKING: yes + steps: + - uses: actions/checkout@v1 + - uses: actions/cache@v1 + id: cache-msys2 + if: matrix.conf.compiler == 'GCC' + with: + path: 'C:/tools/msys64' + key: msys2-${{ matrix.conf.compiler }}-${{ matrix.conf.bits }}-2019-v11} + - name: Install MSYS2 + if: steps.cache-msys2.outputs.cache-hit != 'true' + run: choco install msys2 --no-progress + - name: Install C++ compiler and libraries + if: steps.cache-msys2.outputs.cache-hit != 'true' + shell: python scripts\msys-bash.py {0} + run: ./scripts/list-build-dependencies.sh -m msys2 -c ${{ matrix.conf.compiler }} -b ${{ matrix.conf.bits }} | xargs pacman -S --noconfirm + - name: Shrink MSYS2 for cache + if: matrix.conf.compiler == 'GCC' && steps.cache-msys2.outputs.cache-hit != 'true' + shell: python scripts\msys-bash.py {0} + run: ./.github/scripts/shrink-msys2.sh + - name: Log environment + shell: python scripts\msys-bash.py {0} + run: ./scripts/log-env.sh + - name: Build + shell: python scripts\msys-bash.py {0} + run: | + # export these two in script to override variables defined by MSYS2 + export MSYSTEM_CARCH=${{ matrix.conf.arch }} + export MSYSTEM_CHOST=${{ matrix.conf.arch }}-pc-msys + ./scripts/build.sh --compiler ${{ matrix.conf.compiler }} --build-type Debug --bin-path /mingw${{ matrix.conf.bits }}/bin + - name: Summarize warnings + env: + MAX_WARNINGS: ${{ matrix.conf.max_warnings }} + run: python scripts\count-warnings.py build.log + build_msvc_matrix: name: MSVC 32-bit (${{ matrix.type }}) runs-on: windows-latest @@ -31,47 +84,3 @@ jobs: run: | cd vs MSBuild -m dosbox.sln -p:Configuration=${{ matrix.type }} - - - build_msys2_matrix: - name: ${{ matrix.compiler }} ${{ matrix.bits }}-bit - runs-on: windows-latest - strategy: - matrix: - compiler: [GCC, Clang] - bits: [32, 64] - env: - CHERE_INVOKING: yes - steps: - - uses: actions/checkout@v1 - - uses: actions/cache@v1 - id: cache-msys2 - if: matrix.compiler == 'GCC' - with: - path: 'C:/tools/msys64' - key: msys2-${{ matrix.compiler }}-${{ matrix.bits }}-2019-v11} - - name: Install MSYS2 - if: steps.cache-msys2.outputs.cache-hit != 'true' - run: choco install msys2 --no-progress - - name: Install C++ compiler and libraries - if: steps.cache-msys2.outputs.cache-hit != 'true' - shell: python scripts\msys-bash.py {0} - run: ./scripts/list-build-dependencies.sh -m msys2 -c ${{ matrix.compiler }} -b ${{ matrix.bits }} | xargs pacman -S --noconfirm - - name: Shrink MSYS2 for cache - if: matrix.compiler == 'GCC' && steps.cache-msys2.outputs.cache-hit != 'true' - shell: python scripts\msys-bash.py {0} - run: ./.github/scripts/shrink-msys2.sh - - name: Log environment - shell: python scripts\msys-bash.py {0} - run: ./scripts/log-env.sh - - name: Debug Build - shell: python scripts\msys-bash.py {0} - env: - ARCH_32: i686 - ARCH_64: x86_64 - run: | - export MSYSTEM_CARCH="$ARCH_${{ matrix.bits }}" - export MSYSTEM_CHOST="$ARCH_${{ matrix.bits }}-pc-msys" - ./scripts/build.sh --compiler ${{ matrix.compiler }} --build-type Debug --bin-path /mingw${{ matrix.bits }}/bin - - name: Debug Warnings - run: python scripts\count-warnings.py -m $env:MAX_WARNINGS_${{ matrix.compiler }}_${{ matrix.bits }}bit_Debug build.log