diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 000000000..cb64707f4 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,53 @@ +# DESCRIPTION: Github actions config +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +name: lint + +on: + push: + pull_request: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' # weekly + +env: + CI_OS_NAME: linux + CI_COMMIT: ${{ github.sha }} + +defaults: + run: + shell: bash + working-directory: repo + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + + lint-py: + runs-on: ubuntu-22.04 + name: Lint Python + env: + CI_BUILD_STAGE_NAME: build + CI_RUNS_ON: ubuntu-22.04 + CI_M32: 0 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + path: repo + + - name: Install packages for build + run: ./ci/ci-install.bash + + # We use specific version numbers, otherwise a Python package + # update may add a warning and break our build + - name: Install packages for lint + run: sudo pip3 install pylint==3.0.2 ruff==0.1.3 clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff + + - name: Configure + run: autoconf && ./configure --enable-longtests --enable-ccwarn + + - name: Lint + run: make -k lint-py diff --git a/Makefile.in b/Makefile.in index 5cb2b29e7..8eb581f1e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -434,9 +434,15 @@ PYLINT_FLAGS = --score=n --disable=R0801 RUFF = ruff RUFF_FLAGS = check --ignore=E402,E501,E701 +# "make -k" so can see all tool result errors lint-py: - -$(PYLINT) $(PYLINT_FLAGS) $(PY_PROGRAMS) - -$(RUFF) $(RUFF_FLAGS) $(PY_PROGRAMS) + $(MAKE) -k lint-py-pylint lint-py-ruff + +lint-py-pylint: + $(PYLINT) $(PYLINT_FLAGS) $(PY_PROGRAMS) + +lint-py-ruff: + $(RUFF) $(RUFF_FLAGS) $(PY_PROGRAMS) format-pl-exec: -chmod a+x test_regress/t/*.pl