name: Tests on: [push, pull_request] concurrency: group: ${{github.workflow}}-${{ github.ref }} cancel-in-progress: true jobs: tests: timeout-minutes: 60 runs-on: ${{ matrix.os }} container: image: mcr.microsoft.com/playwright/python:v1.48.0-jammy options: --user 1001 strategy: fail-fast: false matrix: include: - python-version: "3.8" os: ubuntu-latest env: TOXENV: py - python-version: "3.9" os: ubuntu-latest env: TOXENV: py - python-version: "3.10" os: ubuntu-latest env: TOXENV: py - python-version: "3.11" os: ubuntu-latest env: TOXENV: py - python-version: "3.12" os: ubuntu-latest env: TOXENV: py - python-version: "3.13" os: ubuntu-latest env: TOXENV: py steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Camoufox Dependencies run: | python3 -m pip install --upgrade pip python3 -m pip install camoufox python3 -m camoufox fetch --browserforge # Cache tox environments - name: Cache tox environments uses: actions/cache@v3 with: path: .tox # Include python version and os in cache key key: tox-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('tox.ini', 'setup.py', 'requirements*.txt') }} restore-keys: | tox-${{ runner.os }}-py${{ matrix.python-version }}- tox-${{ runner.os }}- - name: Run tests env: ${{ matrix.env }} run: | pip install -U tox tox