Cosimo Lupo 99dabeae32
test on 3.10 until lxml provides wheels for windows 3.11
looks like neither lxml 4.9.0 nor 4.9.1 provide precompiled wheels for Windows CPython 3.11 so for now continue to run tests on 3.10 until that's the case
2022-11-03 11:37:59 +00:00

93 lines
2.5 KiB
YAML

name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
# https://github.community/t/github-actions-does-not-respect-skip-ci/17325/8
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install packages
run: pip install tox
- name: Run Tox
run: tox -e mypy,package_readme
test:
runs-on: ${{ matrix.platform }}
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
strategy:
matrix:
python-version: ["3.8", "3.10"]
platform: [ubuntu-latest, macos-latest, windows-latest]
exclude: # Only test on the latest supported stable Python on macOS and Windows.
- platform: macos-latest
python-version: 3.8
- platform: windows-latest
python-version: 3.8
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install packages
run: pip install tox coverage
- name: Run Tox
run: tox -e py-cov
- name: Run Tox without lxml
run: tox -e py-cov-nolxml
- name: Produce coverage files
run: |
coverage combine
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: true
# see https://github.com/codecov/codecov-action/issues/557
token: ${{ secrets.CODECOV_TOKEN }}
test-cython:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install packages
run: pip install tox
- name: Run Tox
run: tox -e py-cy-nolxml
test-pypy3:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
steps:
- uses: actions/checkout@v3
- name: Set up Python pypy3
uses: actions/setup-python@v4
with:
python-version: "pypy-3.8"
- name: Install packages
run: pip install tox
- name: Run Tox
run: tox -e pypy3-nolxml