Corp/tools/quality/README.md
2026-09-07 18:37:34 +03:00

1.3 KiB

Local quality gates

The checks run entirely on the development computer. GitHub and Gitea are not contacted, except by the git push that starts the pre-push hook.

Setup

Install the project dependencies, then enable the versioned hooks for this checkout:

cd backend
python -m pip install -r requirements-ci.txt
cd ../frontend
npm ci
cd ..
./tools/quality/install-hooks.sh

Each clone or independently configured worktree needs the one-time activation command. Merely receiving .githooks through a mirror does not activate them.

Commands

./tools/quality/quality.sh quick
./tools/quality/quality.sh test
./tools/quality/quality.sh release
  • quick checks formatting, lint, Django configuration and missing migrations.
  • test also runs both test suites, the production frontend build and all migrations on a fresh temporary PostgreSQL database.
  • release first requires the complete repository to pass Ruff, ESLint and Prettier, then runs everything from test.

pre-commit runs quick --staged. It refuses partially staged files so the checked content is exactly the content being committed. pre-push chooses test for develop, release for master, and quick for other branches.

PostgreSQL validation requires Docker with the postgres:17-alpine image. The temporary container is removed after the check.