stages: - check - test syntax: stage: check image: python:3.12-slim before_script: - pip install --no-cache-dir -r requirements.txt script: - python -m py_compile app.py models.py config.py init_db.py rules: - if: '$CI_PIPELINE_SOURCE == "push"' - if: '$CI_PIPELINE_SOURCE == "web"' pytest: stage: test image: python:3.12-slim before_script: - pip install --no-cache-dir -r requirements.txt pytest script: - | if find . -type f \( -name "test_*.py" -o -name "*_test.py" \) | grep -q .; then pytest else echo "No tests found; skipping." fi rules: - if: '$CI_PIPELINE_SOURCE == "push"' - if: '$CI_PIPELINE_SOURCE == "web"'