name: Lint on: push: branches: - '**' pull_request: branches: - 'main' jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 id: cp311 with: python-version: "3.11" - name: Install Poetry uses: snok/install-poetry@v1 with: virtualenvs-create: true virtualenvs-in-project: true - name: Get full Python version id: full-python-version run: echo "version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")" >> $GITHUB_OUTPUT - name: Load cached venv id: cached-poetry-dependencies uses: actions/cache@v4 with: path: .venv key: venv-${{ runner.os }}-cache-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock')}}-v20210414 - name: Install dependencies run: poetry install if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - name: Activate venv run: | echo "VIRTUAL_ENV=$GITHUB_WORKSPACE/.venv" >> $GITHUB_ENV echo "PYTHONPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV echo "$GITHUB_WORKSPACE/.venv/bin" >> $GITHUB_PATH - name: mypy Static Type Checker run: | mypy \ --follow-imports=skip \ --exclude 'migrations/*' \ . - name: Flynt f-string Formatter run: > flynt . --line-length=79 --transform-concats --fail-on-change - name: Black Code Formatter uses: psf/black@stable lint-isort: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.9" - name: isort Import Sorter uses: isort/isort-action@v1