name: tox on: [push, pull_request] permissions: contents: read # to fetch code (actions/checkout) env: # note that some tools care only for the name, not the value FORCE_COLOR: 1 jobs: tox: name: ${{ matrix.os }} / ${{ matrix.python-version }} # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes timeout-minutes: 20 runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: unsupported: [false] os: - ubuntu-latest # not defaulting to macos-latest: Python <= 3.9 was missing from macos-14 @ arm64 - macos-13 # Not testing Windows, because tests need Unix-only fcntl, grp, pwd, etc. python-version: - "3.10" - "3.11" - "3.12" include: # Note: potentially "universal2" release # https://github.com/actions/runner-images/issues/9741 - os: macos-latest python-version: "3.12" unsupported: false # will run these without showing red CI results should they fail - os: macos-latest python-version: "3.13" unsupported: true - os: ubuntu-latest python-version: "3.13" unsupported: true steps: - uses: actions/checkout@v4 - name: Using Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip cache-dependency-path: requirements_test.txt check-latest: true allow-prereleases: ${{ matrix.unsupported }} - name: Install Dependencies run: | python -m pip install --upgrade pip python -m pip install tox - run: tox -e run-module continue-on-error: ${{ matrix.unsupported }} - run: tox -e run-entrypoint continue-on-error: ${{ matrix.unsupported }} - run: tox -e py continue-on-error: ${{ matrix.unsupported }}