name: ci on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false steps: - uses: actions/checkout@v4 - name: Set up Python 3.12 uses: actions/setup-python@v5 with: python-version: "3.12" cache: pip - name: Install run: | python -m pip install --upgrade pip pip install -e '.[dev]' - name: Lint (ruff) run: ruff check src tests - name: Type check (mypy) run: mypy src - name: Tests + coverage run: pytest --cov=src/ypms --cov-report=term-missing --cov-fail-under=80 - name: SAST (bandit) run: bandit -r src -c pyproject.toml - name: SCA (pip-audit) run: pip-audit --strict --disable-pip - name: Gitleaks uses: gitleaks/gitleaks-action@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}