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