# yamllint disable rule:line-length
---
name: Lint

on: [push, pull_request] # yamllint disable-line rule:truthy

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: "3.9"
          cache: "pip"

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install pylint black yamllint
          if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

      - name: Run pylint
        run: |
          pylint --output-format=text $(find -type f -name "*.py" ! -path "**/.venv/**" ! -path "**/app/migrations/**") | tee /tmp/pylint.txt
          echo "pylint score: $(cat /tmp/pylint.txt | grep -oP 'Your code has been rated at \K[0-9]*\.?[0-9]*')"

      - name: Run black
        run: black --check --diff .

      - name: Lint YAML files
        run: yamllint .
