name: Checks
on:
  push:
    branches:
    - master
    - '[0-9]+.[0-9]+'
  pull_request:

concurrency:
  group: ${{github.workflow}}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  checks:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
        - python-version: "3.14"
          env:
            TOXENV: pylint
        - python-version: "3.10"
          env:
            TOXENV: typing
        - python-version: "3.10"
          env:
            TOXENV: typing-tests
        # Keep in sync with pyproject.toml tool.sphinx-scrapy.python-version.
        - python-version: "3.14"
          env:
            TOXENV: docs
        - python-version: "3.13"
          env:
            TOXENV: docs-tests
        - python-version: "3.14"
          env:
            TOXENV: twinecheck

    steps:
    - uses: actions/checkout@v6

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v6
      with:
        python-version: ${{ matrix.python-version }}

    - name: Run check
      env: ${{ matrix.env }}
      run: |
        pip install -U tox
        tox

  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: pre-commit/action@v3.0.1
