name: Test MSYS2 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: include: # skip to save CI time: # see https://github.com/python-pillow/Pillow/pull/6888#issuecomment-1400392821 # - msystem: "UCRT64" - msystem: "CLANG64" - msystem: "MINGW64" defaults: run: shell: bash.exe --login -eo pipefail "{0}" env: MSYSTEM: ${{ matrix.msystem }} CHERE_INVOKING: 1 timeout-minutes: 30 name: MSYS2 ${{ matrix.msystem }} 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: | pacboy -S --noconfirm \ freetype:p \ gcc:p \ ghostscript:p \ lcms2:p \ libimagequant:p \ libjpeg-turbo:p \ libraqm:p \ libtiff:p \ libwebp:p \ openjpeg2:p \ python3-cffi:p \ python3-numpy:p \ python3-olefile:p \ python3-pip:p \ python3-setuptools:p \ python-pyqt6:p \ subversion: 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 . - 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: "MSYS2 MinGW"