--- a +++ b/.github/workflows/lint.yml @@ -0,0 +1,54 @@ +name: Lint + +on: + schedule: + - cron: 00 00 * * 1 + push: + branches: [main] + pull_request: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint ${{ matrix.lint-kind }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + lint-kind: [code, docs] + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Cache pre-commit + uses: actions/cache@v3 + if: ${{ matrix.lint-kind == 'code' }} + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ env.pythonLocation }}-${{ hashFiles('**/.pre-commit-config.yaml') }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install tox + + - name: Install PyEnchant + if: ${{ matrix.lint-kind == 'docs' }} + run: | + sudo apt-get update -y + sudo apt-get install libenchant-2-dev + python -m pip install pyenchant + + - name: Lint ${{ matrix.lint-kind }} + run: | + tox -e lint-${{ matrix.lint-kind }}