Repository navigation
test: fix the ports and the helpers that the full matrix showed #4907
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - release-* | |
| pull_request: | |
| branches: | |
| - main | |
| - release-* | |
| concurrency: | |
| # For pull requests, cancel all currently-running jobs for this workflow | |
| # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| infra: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.10" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r local-requirements.txt | |
| pip install -r requirements.txt | |
| pip install -e . | |
| - name: Lint | |
| run: pre-commit run --show-diff-on-failure --color=always --all-files | |
| - name: Check the tests against the upstream test registry | |
| run: python scripts/check_test_registry.py --report | |
| build: | |
| name: Build | |
| timeout-minutes: 90 | |
| env: | |
| # The dot reporter of the test steps (scripts/pytest_dot_reporter.py). | |
| PYTHONPATH: scripts | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # ubuntu-22.04, not ubuntu-latest: the 24.04 image has no WebGL for headless | |
| # Firefox (CA-008, CA-009). | |
| os: [ubuntu-22.04, windows-latest, macos-latest] | |
| python-version: ['3.14'] | |
| browser: [chromium, firefox, webkit] | |
| exclude: | |
| # WebKit on standard macOS-latest (currently macos-15-arm64) is unstable; | |
| # upstream pins paid macos-15-xlarge for cross-browser webkit too. | |
| - os: macos-latest | |
| browser: webkit | |
| include: | |
| - os: windows-latest | |
| python-version: '3.10' | |
| browser: chromium | |
| - os: macos-latest | |
| python-version: '3.10' | |
| browser: chromium | |
| - os: ubuntu-22.04 | |
| python-version: '3.10' | |
| browser: chromium | |
| - os: macos-15-xlarge | |
| python-version: '3.14' | |
| browser: webkit | |
| - os: windows-latest | |
| python-version: '3.11' | |
| browser: chromium | |
| - os: macos-latest | |
| python-version: '3.11' | |
| browser: chromium | |
| - os: ubuntu-22.04 | |
| python-version: '3.11' | |
| browser: chromium | |
| - os: windows-latest | |
| python-version: '3.12' | |
| browser: chromium | |
| - os: macos-latest | |
| python-version: '3.12' | |
| browser: chromium | |
| - os: ubuntu-22.04 | |
| python-version: '3.12' | |
| browser: chromium | |
| - os: windows-latest | |
| python-version: '3.13' | |
| browser: chromium | |
| - os: macos-latest | |
| python-version: '3.13' | |
| browser: chromium | |
| - os: ubuntu-22.04 | |
| python-version: '3.13' | |
| browser: chromium | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies & browsers | |
| id: install | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r local-requirements.txt | |
| pip install -r requirements.txt | |
| pip install -e . | |
| python -m build --wheel | |
| python -m playwright install --with-deps ${{ matrix.browser }} | |
| - name: Common Tests | |
| run: pytest tests/common --browser=${{ matrix.browser }} | |
| - name: Test Reference count | |
| run: pytest tests/test_reference_count_async.py --browser=${{ matrix.browser }} | |
| - name: Test Wheel Installation | |
| run: pytest tests/test_installation.py --browser=${{ matrix.browser }} | |
| - name: Test Sync API | |
| if: matrix.os != 'ubuntu-22.04' | |
| run: pytest tests/sync --browser=${{ matrix.browser }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Sync API | |
| if: matrix.os == 'ubuntu-22.04' | |
| run: xvfb-run pytest tests/sync --browser=${{ matrix.browser }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Async API | |
| # Also after a failed sync step: the two suites report on their own. | |
| if: ${{ !cancelled() && steps.install.outcome == 'success' && matrix.os != 'ubuntu-22.04' }} | |
| run: pytest tests/async --browser=${{ matrix.browser }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Async API | |
| if: ${{ !cancelled() && steps.install.outcome == 'success' && matrix.os == 'ubuntu-22.04' }} | |
| run: xvfb-run pytest tests/async --browser=${{ matrix.browser }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| test-stable: | |
| name: Stable | |
| timeout-minutes: 90 | |
| env: | |
| # The dot reporter of the test steps (scripts/pytest_dot_reporter.py). | |
| PYTHONPATH: scripts | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, windows-latest, macos-latest] | |
| browser-channel: [chrome] | |
| include: | |
| - os: windows-latest | |
| browser-channel: msedge | |
| - os: macos-latest | |
| browser-channel: msedge | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.10" | |
| - name: Install dependencies & browsers | |
| id: install | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r local-requirements.txt | |
| pip install -r requirements.txt | |
| pip install -e . | |
| python -m build --wheel | |
| python -m playwright install ${{ matrix.browser-channel }} --with-deps | |
| - name: Common Tests | |
| run: pytest tests/common --browser=chromium --browser-channel=${{ matrix.browser-channel }} | |
| - name: Test Sync API | |
| if: matrix.os != 'ubuntu-22.04' | |
| run: pytest tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Sync API | |
| if: matrix.os == 'ubuntu-22.04' | |
| run: xvfb-run pytest tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Async API | |
| # Also after a failed sync step: the two suites report on their own. | |
| if: ${{ !cancelled() && steps.install.outcome == 'success' && matrix.os != 'ubuntu-22.04' }} | |
| run: pytest tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| - name: Test Async API | |
| if: ${{ !cancelled() && steps.install.outcome == 'success' && matrix.os == 'ubuntu-22.04' }} | |
| run: xvfb-run pytest tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} -n auto -p pytest_dot_reporter -rfE --color=yes | |
| test_examples: | |
| name: Examples | |
| runs-on: ubuntu-22.04 | |
| defaults: | |
| run: | |
| working-directory: examples/todomvc/ | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.10' | |
| - name: Install dependencies & browsers | |
| id: install | |
| run: | | |
| pip install -r requirements.txt | |
| python -m playwright install --with-deps chromium | |
| - name: Common Tests | |
| run: pytest |