name: cygwin concurrency: group: cygwin-${{ github.head_ref }} cancel-in-progress: true on: push: paths: - "mesonbuild/**" - "test cases/**" - ".github/workflows/cygwin.yml" - "run*tests.py" pull_request: paths: - "mesonbuild/**" - "test cases/**" - ".github/workflows/cygwin.yml" - "run*tests.py" jobs: test: runs-on: windows-latest name: ${{ matrix.NAME }} strategy: fail-fast: false matrix: include: - NAME: gccx64ninja ARCH: x86_64 env: MESON_CI_JOBNAME: cygwin-${{ matrix.NAME }} steps: # cache should be saved on failure, but the action doesn't support that # https://github.com/actions/cache/issues/92 - uses: actions/cache@v1 with: # should use 'pip3 cache dir' to discover this path path: C:\cygwin\home\runneradmin\.cache\pip key: cygwin-pip-${{ github.run_number }} restore-keys: cygwin-pip- - run: git config --global core.autocrlf input - uses: actions/checkout@v2 - uses: cygwin/cygwin-install-action@master with: platform: ${{ matrix.ARCH }} packages: | cmake gcc-fortran gcc-objc++ gcc-objc git gobject-introspection gtk-doc libboost-devel libglib2.0-devel libgtk3-devel libxml2-devel libxslt-devel ninja python2-devel python3-devel python3-libxml2 python3-libxslt python39-pip python39-wheel vala zlib-devel - name: work around gcovr bug https://github.com/gcovr/gcovr/pull/576 run: | export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32 python3 -m pip --disable-pip-version-check install 'jinja2<3.1.0' shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}' - name: Run pip run: | export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32 python3 -m pip --disable-pip-version-check install gcovr jsonschema pefile pytest pytest-subtests pytest-xdist coverage codecov shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}' - name: Run tests run: | export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32 python3 ./tools/run_with_cov.py run_tests.py --backend=ninja env: # Cygwin's static boost installation is broken (some static library # variants such as boost_thread are not present) SKIP_STATIC_BOOST: 1 shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}' - uses: actions/upload-artifact@v2 with: name: ${{ matrix.NAME }} path: meson-test-run.* # test log should be saved on failure if: ${{ !cancelled() }} - name: Upload coverage report run: ./ci/upload_cov.sh "${{ matrix.NAME }}"