diff --git a/Makefile b/Makefile index b663c37..f33e17d 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ build build-no-cache build-no-cache-all build-missing \ delete-volumes purge \ test test-unit test-e2e test-integration test-env-virtual test-env-nix \ + lint \ setup setup-venv setup-nix # Distro @@ -82,6 +83,13 @@ build-no-cache-all: PKGMGR_DISTRO="$$d" $(MAKE) build-no-cache; \ done +# ------------------------------------------------------------ +# Lint targets (run on the host, not in a container) +# ------------------------------------------------------------ + +lint: + @bash scripts/lint/python.sh + # ------------------------------------------------------------ # Test targets (delegated to scripts/test) # ------------------------------------------------------------ @@ -101,8 +109,8 @@ test-env-virtual: build-missing test-env-nix: build-missing @bash scripts/test/test-env-nix.sh -# Combined test target for local + CI (unit + integration + e2e) -test: test-env-virtual test-unit test-integration test-e2e +# Combined test target for local + CI (lint + unit + integration + e2e) +test: lint test-env-virtual test-unit test-integration test-e2e delete-volumes: @docker volume rm "pkgmgr_nix_store_${PKGMGR_DISTRO}" "pkgmgr_nix_cache_${PKGMGR_DISTRO}" || echo "No volumes to delete." diff --git a/scripts/lint/python.sh b/scripts/lint/python.sh new file mode 100755 index 0000000..0e4ab77 --- /dev/null +++ b/scripts/lint/python.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +echo "============================================================" +echo ">>> Running RUFF lint on src and tests (local, no container)" +echo "============================================================" + +if ! command -v ruff >/dev/null 2>&1; then + echo "ruff is not installed or not on PATH." >&2 + echo "Install it with: pip install ruff" >&2 + exit 127 +fi + +ruff --version +ruff check src tests