Skip to content

setup JoinedDispatch to support pickling #3543

setup JoinedDispatch to support pickling

setup JoinedDispatch to support pickling #3543

Workflow file for this run

name: Run tests
on:
# run on push in main or rel_* branches excluding changes are only on doc or example folders
push:
branches:
- main
- "rel_*"
# branches used to test the workflow
- "workflow_test_*"
paths-ignore:
- "examples/**"
env:
# global env to all steps
TOX_WORKERS: -n2
permissions:
contents: read
jobs:
run-test:
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"
- "windows-latest"
- "macos-latest"
- "macos-13"
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "pypy-3.9"
build-type:
- "cext"
- "nocext"
architecture:
- x64
- x86
- arm64
include:
# autocommit tests fail on the ci for some reason
- python-version: "pypy-3.9"
pytest-args: "-k 'not test_autocommit_on and not test_turn_autocommit_off_via_default_iso_level and not test_autocommit_isolation_level'"
- os: "ubuntu-latest"
pytest-args: "--dbdriver pysqlite --dbdriver aiosqlite"
exclude:
# linux do not have x86 / arm64 python
- os: "ubuntu-latest"
architecture: x86
- os: "ubuntu-latest"
architecture: arm64
# windows des not have arm64 python
- os: "windows-latest"
architecture: arm64
# macos: latests uses arm macs. only 3.10+; no x86/x64
- os: "macos-latest"
architecture: x86
- os: "macos-latest"
architecture: x64
- os: "macos-latest"
python-version: "3.7"
- os: "macos-latest"
python-version: "3.8"
- os: "macos-latest"
python-version: "3.9"
# macos 13: uses intel macs. no arm64, x86
- os: "macos-13"
architecture: arm64
- os: "macos-13"
architecture: x86
# pypy does not have cext or x86
- python-version: "pypy-3.9"
build-type: "cext"
- os: "windows-latest"
python-version: "pypy-3.9"
architecture: x86
fail-fast: false
# steps to run in each job. Some are github actions, others run shell commands
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Remove greenlet
if: ${{ matrix.no-greenlet == 'true' }}
shell: pwsh
run: |
(cat setup.cfg) | %{$_ -replace "^\s*greenlet.+",""} | set-content setup.cfg
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade tox setuptools
pip list
- name: Run tests
run: tox -e github-${{ matrix.build-type }} -- -q --nomemory --notimingintensive ${{ matrix.pytest-args }}
continue-on-error: ${{ matrix.python-version == 'pypy-3.9' }}
run-test-arm64:
# Hopefully something native can be used at some point https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/
name: test-arm64-${{ matrix.python-version }}-${{ matrix.build-type }}-${{ matrix.os }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- cp37-cp37m
- cp38-cp38
- cp39-cp39
- cp310-cp310
- cp311-cp311
build-type:
- "cext"
- "nocext"
fail-fast: false
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up emulation
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- name: Run tests
uses: docker://quay.io/pypa/manylinux2014_aarch64
with:
args: |
bash -c "
export PATH=/opt/python/${{ matrix.python-version }}/bin:$PATH &&
python --version &&
python -m pip install --upgrade pip &&
pip install --upgrade tox setuptools &&
pip list &&
tox -e github-${{ matrix.build-type }} -- -q --nomemory --notimingintensive ${{ matrix.pytest-args }}
"
run-tox:
name: ${{ matrix.tox-env }}-${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
# run this job using this matrix, excluding some combinations below.
matrix:
os:
- "ubuntu-latest"
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
tox-env:
- mypy
- lint
- pep484
exclude:
# run lint only on 3.11
- tox-env: lint
python-version: "3.8"
- tox-env: lint
python-version: "3.9"
- tox-env: lint
python-version: "3.10"
# run pep484 only on 3.10+
- tox-env: pep484
python-version: "3.8"
- tox-env: pep484
python-version: "3.9"
fail-fast: false
# steps to run in each job. Some are github actions, others run shell commands
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade tox setuptools
pip list
- name: Run tox
run: tox -e ${{ matrix.tox-env }} ${{ matrix.pytest-args }}