# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt name: "Quality" on: push: branches: - master - nedbat/* pull_request: workflow_dispatch: defaults: run: shell: bash env: PIP_DISABLE_PIP_VERSION_CHECK: 1 permissions: contents: read concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: true jobs: lint: name: "Pylint etc" # Because pylint can report different things on different OS's (!) # (https://github.com/PyCQA/pylint/issues/3489), run this on Mac where local # pylint gets run. runs-on: macos-latest steps: - name: "Check out the repo" uses: "actions/checkout@v3" - name: "Install Python" uses: "actions/setup-python@v4" with: python-version: "3.7" # Minimum of PYVERSIONS cache: pip cache-dependency-path: 'requirements/*.pip' - name: "Install dependencies" run: | python -m pip install -r requirements/tox.pip - name: "Tox lint" run: | python -m tox -e lint mypy: name: "Check types" runs-on: ubuntu-latest steps: - name: "Check out the repo" uses: "actions/checkout@v3" - name: "Install Python" uses: "actions/setup-python@v4" with: python-version: "3.8" # Minimum of PYVERSIONS, but at least 3.8 cache: pip cache-dependency-path: 'requirements/*.pip' - name: "Install dependencies" run: | # We run on 3.8, but the pins were made on 3.7, so don't insist on # hashes, which won't match. python -m pip install -r requirements/tox.pip - name: "Tox mypy" run: | python -m tox -e mypy doc: name: "Build docs" runs-on: ubuntu-latest steps: - name: "Check out the repo" uses: "actions/checkout@v3" - name: "Install Python" uses: "actions/setup-python@v4" with: python-version: "3.7" # Minimum of PYVERSIONS cache: pip cache-dependency-path: 'requirements/*.pip' - name: "Install dependencies" run: | set -xe python -VV python -m site python -m pip install -r requirements/tox.pip - name: "Tox doc" run: | python -m tox -e doc