on: [pull_request, push] jobs: build: # Prevent duplicate builds for 'internal' pull requests on existing commits # Credit: https://github.community/t/duplicate-checks-on-push-and-pull-request-simultaneous-event/18012 if: github.event.push || github.event.pull_request.head.repo.full_name != github.repository strategy: fail-fast: false matrix: # 2.7 and 3.7 run on Windows via AppVeyor python: ["3.8", "3.9", "3.10", "3.11", "3.12"] os: [ubuntu-latest, windows-latest] deps: [base, optional] include: - python: "pypy-2.7" os: ubuntu-latest deps: base - python: "pypy-3.10" os: ubuntu-latest deps: base - python: "3.8" os: ubuntu-latest deps: oldest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 with: submodules: true - if: ${{ matrix.deps == 'base' }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} cache: pip cache-dependency-path: | requirements.txt requirements-test.txt - if: ${{ matrix.deps == 'optional' }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} cache: pip cache-dependency-path: | requirements.txt requirements-optional.txt requirements-test.txt - if: ${{ matrix.deps == 'oldest' }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} cache: pip cache-dependency-path: | requirements-oldest.txt - if: ${{ matrix.os == 'windows-latest' }} name: Determine environment name for Tox (PowerShell) run: python toxver.py ${{ matrix.python }} ${{ matrix.deps }} >> $env:GITHUB_ENV - if: ${{ matrix.os == 'ubuntu-latest' }} name: Determine environment name for Tox (Bash) run: python toxver.py ${{ matrix.python }} ${{ matrix.deps }} >> $GITHUB_ENV - run: pip install tox - run: tox - if: ${{ always() }} run: python debug-info.py