name: Test MinGW on: push: paths-ignore: - ".github/workflows/docs.yml" - "docs/**" pull_request: paths-ignore: - ".github/workflows/docs.yml" - "docs/**" workflow_dispatch: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true 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@v3 - name: Set up shell run: echo "C:\msys64\usr\bin\" >> $env:GITHUB_PATH shell: pwsh - name: Install dependencies run: | pacman -S --noconfirm \ ${{ matrix.package }}-freetype \ ${{ matrix.package }}-gcc \ ${{ 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 \ ${{ matrix.package }}-python3-cffi \ ${{ matrix.package }}-python3-numpy \ ${{ matrix.package }}-python3-olefile \ ${{ matrix.package }}-python3-pip \ ${{ matrix.package }}-python3-setuptools if [ ${{ matrix.package }} == "mingw-w64-x86_64" ]; then pacman -S --noconfirm \ ${{ matrix.package }}-python-pyqt6 fi python3 -m pip install pyroma pytest pytest-cov pytest-timeout pushd depends && ./install_extra_test_images.sh && popd - name: Build Pillow run: SETUPTOOLS_USE_DISTUTILS="stdlib" 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 uses: codecov/codecov-action@v3 with: file: ./coverage.xml flags: GHA_Windows name: ${{ matrix.name }} success: permissions: contents: none needs: build runs-on: ubuntu-latest name: MinGW Test Successful steps: - name: Success run: echo MinGW Test Successful