| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| test: | |
| strategy: | |
| matrix: | |
| python-version: [ | |
| "2.7", | |
| "3.5", | |
| "3.6", | |
| "3.7", | |
| "3.8", | |
| "3.9", | |
| "3.10", | |
| "3.11", | |
| "3.12", | |
| "3.13", | |
| "pypy-2.7", | |
| "pypy-3.8", | |
| ] | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| exclude: | |
| - python-version: "2.7" | |
| os: "ubuntu-latest" | |
| - python-version: "2.7" | |
| os: "windows-latest" | |
| - python-version: "2.7" | |
| os: "macos-latest" | |
| - python-version: "3.5" | |
| os: "macos-latest" | |
| - python-version: "3.6" | |
| os: "macos-latest" | |
| - python-version: "3.7" | |
| os: "macos-latest" | |
| - python-version: "3.5" | |
| os: "ubuntu-latest" | |
| - python-version: "3.6" | |
| os: "ubuntu-latest" | |
| include: | |
| - python-version: "3.5" | |
| os: "macos-12" | |
| - python-version: "3.6" | |
| os: "macos-12" | |
| - python-version: "3.7" | |
| os: "macos-12" | |
| - python-version: "2.7" | |
| os: "ubuntu-20.04" | |
| - python-version: "3.5" | |
| os: "ubuntu-20.04" | |
| - python-version: "3.6" | |
| os: "ubuntu-20.04" | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| TOXENV: py | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - if: ${{ matrix.python-version == '2.7' }} | |
| run: | | |
| sudo apt-get install python-is-python2 | |
| curl -sSL https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py | |
| python get-pip.py | |
| name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
| - if: ${{ matrix.python-version != '2.7' }} | |
| name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| env: | |
| PIP_TRUSTED_HOST: ${{ contains(fromJson('["3.5"]'), matrix.python-version) && 'pypi.python.org pypi.org files.pythonhosted.org' || '' }} | |
| - name: Install dependencies | |
| run: python -m pip install -U tox | |
| - name: Run tox | |
| run: python -m tox |