# Prüfungen bei jedem Push und Pull Request (Gitea Actions, act_runner). # Gleiche Befehle wie lokal vor einem Release – siehe README, „Entwicklung“. name: CI on: push: branches: [main] tags: ["v*"] pull_request: jobs: pruefen: runs-on: ubuntu-latest strategy: fail-fast: false matrix: # 3.12 = Mindestversion, 3.13 = Debian 13 (Zielsystem) python: ["3.12", "3.13"] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Abhängigkeiten run: | python -m pip install --upgrade pip pip install -e ".[dev]" - name: ruff run: | ruff check . ruff format --check . - name: mypy run: mypy src - name: shellcheck run: shellcheck deploy/*.sh - name: pytest (inkl. Migrationen auf befüllter Datenbank) run: pytest -q # Tag vX.Y.Z → Gitea-Release mit dem Abschnitt aus CHANGELOG.md (nur wenn alles grün) release: needs: pruefen if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Release anlegen run: python3 scripts/gitea_release.py "${GITHUB_REF_NAME}" env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_URL: ${{ github.server_url }} GITEA_REPO: ${{ github.repository }}