164 lines
4.9 KiB
YAML
164 lines
4.9 KiB
YAML
name: Test
|
||
on: [push, pull_request]
|
||
|
||
jobs:
|
||
|
||
test-ubuntu-python-newest:
|
||
needs: lint
|
||
strategy:
|
||
matrix:
|
||
os: [ubuntu-latest]
|
||
python-version: ['3.14']
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with latest Python on Ubuntu
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
test-ubuntu-python-newest-32bit:
|
||
name: Tests (32-bit Linux)
|
||
needs: [lint, test-ubuntu-python-newest]
|
||
runs-on: ubuntu-latest
|
||
container:
|
||
image: i386/python:3.14 # 32‑bit userland with Python
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with newes Python on latest Ubuntu (32-bit)
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
test-ubuntu-python-oldest:
|
||
needs: [lint, test-ubuntu-python-newest]
|
||
strategy:
|
||
matrix:
|
||
os: [ubuntu-latest]
|
||
python-version: ['3.9']
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with oldest Python on Ubuntu
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
test-otheros-python-newest:
|
||
needs: [lint, test-ubuntu-python-newest]
|
||
strategy:
|
||
matrix:
|
||
os: [macos-latest, windows-latest]
|
||
python-version: ['3.14']
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with latest Python on other OS
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
test-otheros-python-oldest:
|
||
needs: [lint, test-ubuntu-python-oldest, test-otheros-python-newest]
|
||
strategy:
|
||
matrix:
|
||
os: [macos-latest, windows-latest]
|
||
python-version: ['3.9']
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with oldest Python on other OS
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
test-python-versions:
|
||
needs: [lint, test-otheros-python-oldest, test-otheros-python-newest, test-ubuntu-python-oldest, test-ubuntu-python-newest]
|
||
strategy:
|
||
matrix:
|
||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||
python-version: ['3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10', 'pypy-3.11']
|
||
exclude:
|
||
- os: windows-latest
|
||
python-version: 'pypy-3.9'
|
||
- os: windows-latest
|
||
python-version: 'pypy-3.10'
|
||
- os: windows-latest
|
||
python-version: 'pypy-3.11'
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test with older Python
|
||
run: tox -c pyproject.toml -e py
|
||
|
||
coveralls-test:
|
||
if: github.event_name == 'push'
|
||
strategy:
|
||
matrix:
|
||
os: [ubuntu-latest]
|
||
python-version: ['3.13']
|
||
runs-on: ${{ matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ matrix.python-version }}
|
||
- name: Install Test dependencies
|
||
run: pip install tox
|
||
- name: Test
|
||
run: tox -c pyproject.toml -e py
|
||
- name: Install Coveralls
|
||
if: github.event_name == 'push'
|
||
run: pip install coveralls
|
||
- name: Upload coverage to Coveralls
|
||
if: github.event_name == 'push'
|
||
env:
|
||
COVERALLS_PARALLEL: true
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
run: coveralls --service=github
|
||
|
||
coveralls-finish:
|
||
needs: coveralls-test
|
||
if: github.event_name == 'push'
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: 3.x
|
||
- name: Install Coveralls
|
||
run: pip install coveralls
|
||
- name: Finish Coveralls parallel builds
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
run: coveralls --service=github --finish
|
||
|
||
lint:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-python@v5
|
||
with:
|
||
python-version: '3.13'
|
||
- name: Install tox
|
||
run: pip install tox
|
||
- name: Lint
|
||
run: tox -c pyproject.toml -e flake8,mypy,isort
|