name: Test MinGW on: [push, pull_request, workflow_dispatch] jobs: build: runs-on: windows-latest strategy: fail-fast: false matrix: mingw: ["MINGW32", "MINGW64"] include: - mingw: "MINGW32" name: "MSYS2 MinGW 32-bit" package: "mingw-w64-i686" - mingw: "MINGW64" name: "MSYS2 MinGW 64-bit" package: "mingw-w64-x86_64" defaults: run: shell: bash.exe --login -eo pipefail "{0}" env: MSYSTEM: ${{ matrix.mingw }} CHERE_INVOKING: 1 timeout-minutes: 30 name: ${{ matrix.name }} steps: - name: Checkout Pillow uses: actions/checkout@v2 - name: Set up shell run: echo "C:\msys64\usr\bin\" >> $env:GITHUB_PATH shell: pwsh - name: Install dependencies run: | pacman -S --noconfirm \ ${{ matrix.package }}-python3-cffi \ ${{ matrix.package }}-python3-numpy \ ${{ matrix.package }}-python3-olefile \ ${{ matrix.package }}-python3-pip \ ${{ matrix.package }}-python-pyqt6 \ ${{ matrix.package }}-python3-setuptools \ ${{ matrix.package }}-freetype \ ${{ matrix.package }}-ghostscript \ ${{ matrix.package }}-lcms2 \ ${{ matrix.package }}-libimagequant \ ${{ matrix.package }}-libjpeg-turbo \ ${{ matrix.package }}-libraqm \ ${{ matrix.package }}-libtiff \ ${{ matrix.package }}-libwebp \ ${{ matrix.package }}-openjpeg2 \ subversion python3 -m pip install pyroma pytest pytest-cov pytest-timeout pushd depends && ./install_extra_test_images.sh && popd - name: Build Pillow run: CFLAGS="-coverage" python3 -m pip install --global-option="build_ext" . - name: Test Pillow run: | python3 selftest.py --installed python3 -c "from PIL import Image" python3 -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests - name: Upload coverage run: | python3 -m pip install codecov bash <(curl -s https://codecov.io/bash) -F GHA_Windows env: CODECOV_NAME: ${{ matrix.name }} success: needs: build runs-on: ubuntu-latest name: MinGW Test Successful steps: - name: Success run: echo MinGW Test Successful