# two jobs are defined make-wheel-win-osx and make-wheel-linux.
# they do the the same steps, but linux wheels need to be build to target manylinux
make-wheel-win-osx:
- name: ${{ matrix.python-version }}-${{ matrix.architecture }}-${{ matrix.os }}
+ name: wheel-win-osx-${{ matrix.python-version }}-${{ matrix.architecture }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
twine upload --skip-existing dist/*
make-wheel-linux:
- name: ${{ matrix.python-version }}-${{ matrix.architecture }}-${{ matrix.os }}
+ name: wheel-linux-${{ matrix.python-version }}-${{ matrix.architecture }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- "ubuntu-latest"
+ - "ubuntu-20.04"
python-version:
# the versions are <python tag>-<abi tag> as specified in PEP 425.
- cp27-cp27m
- python-version: "cp27-cp27mu"
extra-requires: "mock"
+ exclude:
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: cp27-cp27m
+ - os: "ubuntu-latest"
+ python-version: cp27-cp27mu
+ - os: "ubuntu-latest"
+ python-version: cp36-cp36m
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: cp37-cp37m
+ - os: "ubuntu-20.04"
+ python-version: cp38-cp38
+ - os: "ubuntu-20.04"
+ python-version: cp39-cp39
+ - os: "ubuntu-20.04"
+ python-version: cp310-cp310
+ - os: "ubuntu-20.04"
+ python-version: cp311-cp311
+
fail-fast: false
steps:
twine upload --skip-existing dist/*manylinux*
make-wheel-linux-arm64:
- name: ${{ matrix.python-version }}-arm64-${{ matrix.os }}
+ name: wheel-linux-arm64-${{ matrix.python-version }}-arm64-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- "ubuntu-latest"
+ - "ubuntu-20.04"
python-version:
# the versions are <python tag>-<abi tag> as specified in PEP 425.
- cp36-cp36m
- cp39-cp39
- cp310-cp310
- cp311-cp311
+ exclude:
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: cp36-cp36m
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: cp37-cp37m
+ - os: "ubuntu-20.04"
+ python-version: cp38-cp38
+ - os: "ubuntu-20.04"
+ python-version: cp39-cp39
+ - os: "ubuntu-20.04"
+ python-version: cp310-cp310
+ - os: "ubuntu-20.04"
+ python-version: cp311-cp311
fail-fast: false
jobs:
run-test-amd64:
- name: ${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.architecture }}-${{ matrix.os }}
+ name: test-amd64-${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.architecture }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
# run this job using this matrix, excluding some combinations below.
matrix:
os:
- "ubuntu-latest"
+ - "ubuntu-20.04"
python-version:
- "2.7"
- "3.10"
- "nocext"
architecture:
- x64
+ exclude:
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: "2.7"
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: "3.10"
+
# abort all jobs as soon as one fails
fail-fast: true
jobs:
run-test:
- name: ${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.architecture }}-${{ matrix.os }}
+ name: test-${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.architecture }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
# run this job using this matrix, excluding some combinations below.
matrix:
os:
- "ubuntu-latest"
+ - "ubuntu-20.04"
- "windows-latest"
- "macos-latest"
python-version:
# add aiosqlite on linux
- os: "ubuntu-latest"
pytest-args: "--dbdriver pysqlite --dbdriver aiosqlite"
+ - os: "ubuntu-20.04"
+ pytest-args: "--dbdriver pysqlite --dbdriver aiosqlite"
exclude:
# c-extensions fail to build on windows for python 2.7
# linux and osx do not have x86 python
- os: "ubuntu-latest"
architecture: x86
+ - os: "ubuntu-20.04"
+ architecture: x86
- os: "macos-latest"
architecture: x86
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: "2.7"
+ - os: "ubuntu-latest"
+ python-version: "3.6"
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: "3.7"
+ - os: "ubuntu-20.04"
+ python-version: "3.8"
+ - os: "ubuntu-20.04"
+ python-version: "3.9"
+ - os: "ubuntu-20.04"
+ python-version: "3.10"
+ - os: "ubuntu-20.04"
+ python-version: "3.11.0-rc - 3.11"
# pypy does not have cext
# - python-version: "pypy-3.9"
# build-type: "cext"
run: tox -e github-${{ matrix.build-type }} -- -q --nomemory --notimingintensive ${{ matrix.pytest-args }}
run-test-arm64:
- name: ${{ matrix.python-version }}-${{ matrix.build-type }}-arm64-ubuntu-latest
- runs-on: ubuntu-latest
+ name: arm64-${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
strategy:
matrix:
+ os:
+ - "ubuntu-latest"
+ - "ubuntu-20.04"
python-version:
- cp36-cp36m
- cp37-cp37m
build-type:
- "cext"
- "nocext"
+ exclude:
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: cp36-cp36m
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: cp37-cp37m
+ - os: "ubuntu-20.04"
+ python-version: cp38-cp38m
+ - os: "ubuntu-20.04"
+ python-version: cp39-cp39m
+ - os: "ubuntu-20.04"
+ python-version: cp310-cp310m
+ - os: "ubuntu-20.04"
+ python-version: cp311-cp311m
fail-fast: false
"
run-mypy:
- name: mypy-${{ matrix.python-version }}
+ name: mypy-${{ matrix.python-version }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
# run this job using this matrix, excluding some combinations below.
matrix:
os:
- "ubuntu-latest"
+ - "ubuntu-20.04"
python-version:
- "3.6"
- "3.7"
- "3.9"
- "3.10"
- "3.11.0-rc - 3.11"
+ exclude:
+ # ubuntu-latest does not have: py27, py36
+ - os: "ubuntu-latest"
+ python-version: "3.6"
+ # ubuntu-20.04 does not need to test what ubuntu-latest supports
+ - os: "ubuntu-20.04"
+ python-version: "3.7"
+ - os: "ubuntu-20.04"
+ python-version: "3.8"
+ - os: "ubuntu-20.04"
+ python-version: "3.9"
+ - os: "ubuntu-20.04"
+ python-version: "3.10"
+ - os: "ubuntu-20.04"
+ python-version: "3.11.0-rc - 3.11"
fail-fast: false
# steps to run in each job. Some are github actions, others run shell commands
run: tox -e mypy ${{ matrix.pytest-args }}
run-pep8:
- name: pep8-${{ matrix.python-version }}
+ name: pep8-${{ matrix.python-version }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
- # run this job using this matrix, excluding some combinations below.
matrix:
os:
- "ubuntu-latest"