55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
# 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 }}
|