name: Lint source code on: [push, pull_request] permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: FORCE_COLOR: "1" jobs: ruff: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install pip run: python -m pip install --upgrade pip - name: Install known good Ruff run: python -m pip install ruff==0.0.261 - name: Lint with known good Ruff run: ruff . --diff --format github - name: Install latest Ruff run: python -m pip install --upgrade ruff - name: Lint with Ruff continue-on-error: true run: ruff . --diff --format github flake8: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade "flake8>=3.5.0" "flake8-simplify" - name: Lint with flake8 run: flake8 . isort: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade isort - name: Lint with isort run: isort --check-only --diff . mypy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade "mypy>=0.990" docutils-stubs types-requests - name: Type check with mypy run: mypy sphinx/ docs-lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade sphinx-lint - name: Lint documentation with sphinx-lint run: > sphinx-lint --enable line-too-long --max-line-length 85 CHANGES CONTRIBUTING.rst README.rst doc/ twine: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3 - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade twine build - name: Lint with twine run: | python -m build . twine check dist/*