28 lines
1.1 KiB
Bash
28 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$repo_root"
|
|
|
|
python_bin="${PYTHON_BIN:-python3}"
|
|
|
|
echo "Installing backend Python requirements and quality tools"
|
|
"$python_bin" -m pip install -r backend/requirements-dev.txt
|
|
|
|
echo "Running Python dependency integrity check"
|
|
"$python_bin" -m pip check
|
|
|
|
echo "Auditing Python production dependencies"
|
|
"$python_bin" -m pip_audit -r backend/requirements.txt --progress-spinner off
|
|
"$python_bin" -m pip_audit -r docker/requirements-runtime.txt --progress-spinner off
|
|
|
|
echo "Linting backend application code"
|
|
"$python_bin" -m ruff check backend/app scripts/container_smoke.py scripts/check_environment_docs.py backend/tests/test_container_packaging.py backend/tests/test_container_bootstrap.py backend/tests/test_managed_setup_origin.py backend/tests/test_environment_docs.py
|
|
|
|
echo "Running backend unit tests with coverage"
|
|
"$python_bin" -m coverage erase
|
|
"$python_bin" -m coverage run -m unittest discover -s backend/tests -p "test_*.py" -v
|
|
"$python_bin" -m coverage report
|
|
|
|
echo "Backend quality gate passed"
|