diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml new file mode 100644 index 0000000..295056c --- /dev/null +++ b/.github/workflows/linters.yml @@ -0,0 +1,49 @@ +name: Linters + +on: + pull_request: + push: + branches: [main] + workflow_dispatch: + +jobs: + setup_linters: + name: Setup Linters + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Cache pip dependencies + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + - name: Install requirements + run: pip install -r requirements.txt + pre-commit: + name: pre-commit + needs: setup_linters + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run pre-commit + uses: pre-commit/action@v3.0.1 + - name: Run pre-commit.ci + uses: pre-commit-ci/lite-action@v1.1.0 + if: always() + mypy: + name: mypy + needs: setup_linters + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run mypy + run: mypy "./custom_components/opnsense/" --install-types --non-interactive --config-file pyproject.toml