name: lint on: [push, pull_request] permissions: contents: read # to fetch code (actions/checkout) env: # note that some tools care only for the name, not the value FORCE_COLOR: 1 jobs: lint: name: ${{ matrix.python-version }} / tox-${{ matrix.toxenv || '(other)' }} timeout-minutes: 10 runs-on: ubuntu-latest strategy: fail-fast: false matrix: toxenv: [lint, docs-lint, pycodestyle] python-version: [ "3.12" ] include: # for actions that want git env, not tox env - toxenv: null python-version: "3.12" steps: - uses: actions/checkout@v6 - name: Using Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: pip - name: Install Dependencies (tox) if: ${{ matrix.toxenv }} run: | python -m pip install --upgrade pip python -m pip install tox - run: tox -e ${{ matrix.toxenv }} if: ${{ matrix.toxenv }} - name: Install Dependencies (non-toxic) if: ${{ ! matrix.toxenv }} run: | python -m pip install --upgrade pip python -m pip install -e . - name: "Check generated docs" if: ${{ ! matrix.toxenv }} run: | # Regenerate settings.md and check for uncommitted changes python scripts/build_settings_doc.py if unclean=$(git status --untracked-files=no --porcelain) && [ -z "$unclean" ]; then echo "no uncommitted changes in working tree (as it should be)" else echo "did you forget to run 'python scripts/build_settings_doc.py'?" echo "$unclean" git diff exit 2 fi