name: CI - Python on: workflow_call: workflow_dispatch: permissions: contents: read jobs: build: name: Build uses: ./.github/workflows/bazel.yml with: name: Build run: | bazel build //py:selenium-wheel //py:selenium-sdist lint: name: Lint uses: ./.github/workflows/bazel.yml with: name: Lint run: ./go py:lint unit-tests: name: Unit Tests needs: build uses: ./.github/workflows/bazel.yml strategy: fail-fast: false matrix: python-version: ['3.10', '3.14'] os: [ubuntu, macos, windows] with: name: Unit Tests (${{ matrix.python-version }}, ${{ matrix.os }}) os: ${{ matrix.os }} python-version: ${{ matrix.python-version }} run: bazel test --local_test_jobs 1 //py:unit remote-tests: name: Remote Tests needs: build uses: ./.github/workflows/bazel.yml with: name: Integration Tests Remote browser: yes rerun-with-debug: true run: | bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-remote browser-tests: name: Browser Tests needs: build uses: ./.github/workflows/bazel.yml strategy: fail-fast: false matrix: browser: [chrome, firefox, chrome-bidi, edge] os: [windows] include: - browser: safari os: macos with: name: Integration Tests (${{ matrix.browser }}) browser: ${{ matrix.browser }} os: ${{ matrix.os }} rerun-with-debug: true run: | bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-${{ matrix.browser }}