Skip to content

Update CI tests and fix static typing errors #255

Update CI tests and fix static typing errors

Update CI tests and fix static typing errors #255

name: xmlschema
on:
push:
branches: [master, develop]
pull_request:
branches: [master, develop]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14.0-alpha.5", "pypy-3.10"]
exclude:
- os: macos-latest
python-version: 3.8
- os: windows-latest
python-version: 3.8
- os: macos-latest
python-version: 3.9
- os: windows-latest
python-version: 3.9
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install pip and setuptools
run: |
python -m pip install --upgrade pip
pip install setuptools
- name: Build and install lxml for Python 3.14-alpha
if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.14.0-alpha.5' }}
run: |
sudo apt-get install -y libxml2-dev libxslt-dev python3-dev
pip install lxml
- name: Install lxml for Python < 3.14
if: ${{ matrix.python-version != '3.14.0-alpha.5' }}
run: pip install lxml
- name: Install other optional dependencies
run: pip install jinja2
- name: Test with unittest
run: |
pip install .
python -m unittest
- name: Lint with flake8
run: |
pip install flake8
flake8 xmlschema --max-line-length=100 --statistics
- name: Lint with mypy for Python < 3.9
if: ${{ matrix.python-version < '3.9' }}
run: |
pip install mypy==1.14.1 elementpath==4.8.0 lxml-stubs
mypy --show-error-codes --strict xmlschema
- name: Lint with mypy
if: ${{ matrix.python-version >= '3.9' }}
run: |
pip install mypy==1.15.0 elementpath==4.8.0 lxml-stubs
mypy --show-error-codes --strict xmlschema