Dieses Projekt nutzt GitHub Actions für CI/CD. Die folgenden Workflows sind konfiguriert:
Trigger:
- Push auf
mainoderdevelopBranch - Pull Requests auf
mainoderdevelop - Manuell über
workflow_dispatch
Jobs:
- lint: Code-Qualitätsprüfung
- ruff linting
- ruff formatting check
- mypy type checking
- test: Test-Suite auf Python 3.11 und 3.12
- Unit-Tests mit pytest
- BDD-Tests mit behave
- Coverage-Reports
- build: Distribution-Pakete erstellen
- Wheel (
.whl) - Source Distribution (
.tar.gz)
- Wheel (
- docs: Sphinx-Dokumentation bauen
Trigger:
- Push eines Tags mit Pattern
v*.*.*(z.B.v0.1.0) - Manuell über
workflow_dispatch
Jobs:
- release: Build und Release
- Tests ausführen
- Distribution bauen
- GitHub Release erstellen mit Artifacts
- Optional: Zu PyPI publishen
Trigger:
- Push auf
mainBranch - Manuell über
workflow_dispatch
Jobs:
- docs: Sphinx-Dokumentation zu GitHub Pages deployen
- Dokumentation bauen
- Zu GitHub Pages deployen
Trigger:
- Scheduled: Jeden Montag um 02:00 UTC
- Manuell über
workflow_dispatch
Jobs:
- update-dependencies: Automatisches Dependency-Update
uv.lockaktualisieren- Tests ausführen
- Pull Request erstellen (bei Erfolg)
- Issue erstellen (bei Fehler)
Die folgenden Secrets müssen in den GitHub Repository Settings konfiguriert werden:
| Secret Name | Beschreibung | Verwendung | Erforderlich |
|---|---|---|---|
CODECOV_TOKEN |
Token für Codecov-Integration | ci.yml | Optional |
PYPI_TOKEN |
API Token für PyPI Publishing | release.yml | Optional |
GITHUB_TOKEN |
Automatisch von GitHub bereitgestellt | Alle Workflows | Automatisch |
Zweck: Upload von Test-Coverage-Reports zu Codecov
Erstellen:
- Gehe zu codecov.io
- Verbinde dein GitHub-Repository
- Kopiere den Upload-Token
- Füge als Secret hinzu:
CODECOV_TOKEN
Optional: Wenn nicht gesetzt, läuft der Workflow trotzdem durch (coverage wird übersprungen)
Zweck: Automatisches Publishing zu PyPI bei Releases
Erstellen:
- Gehe zu PyPI Account Settings
- Navigiere zu "API tokens"
- Erstelle neuen Token mit Scope "Entire account" oder spezifischem Projekt
- Kopiere den Token (beginnt mit
pypi-) - Füge als Secret hinzu:
PYPI_TOKEN
Optional: Wenn nicht gesetzt, wird der PyPI-Publishing-Step übersprungen
Zweck: Authentifizierung für GitHub API-Operationen
Automatisch: Wird von GitHub automatisch für jeden Workflow bereitgestellt, keine Konfiguration nötig
Die Workflows benötigen folgende Permissions (bereits in den YAML-Dateien konfiguriert):
ci.yml:
- Keine speziellen Permissions (default: read)
release.yml:
permissions:
contents: write # Für GitHub Releasesdocs.yml:
permissions:
contents: write # Für Pages
pages: write # Für Pages-Deployment
id-token: write # Für Pages-Authentifizierungdependency-update.yml:
permissions:
contents: write # Für Commits
pull-requests: write # Für PR-ErstellungFür die Dokumentation muss GitHub Pages aktiviert werden:
- Gehe zu Settings → Pages
- Source: GitHub Actions
- Branch: (wird automatisch von Workflow gesetzt)
- Custom domain: Optional
Nach dem ersten erfolgreichen Workflow-Run ist die Dokumentation verfügbar unter:
https://<username>.github.io/lqt-lynter/
Füge diese Badges in dein README ein:



[](https://codecov.io/gh/lynqtech/lqt-lynter)Alle Workflows können manuell getriggert werden:
- Gehe zu Actions Tab
- Wähle den gewünschten Workflow
- Klicke auf Run workflow
- Wähle Branch
- Klicke Run workflow
Um ein neues Release zu erstellen:
# 1. Version in pyproject.toml aktualisieren
# 2. Commit und push
git add pyproject.toml
git commit -m "chore: bump version to 0.2.0"
git push
# 3. Tag erstellen und pushen
git tag v0.2.0
git push origin v0.2.0Der Release-Workflow wird automatisch getriggert und:
- Tests ausführen
- Distribution bauen
- GitHub Release mit Artifacts erstellen
- (Optional) Zu PyPI publishen
- Linting-Fehler: Führe lokal
task lint:allaus - Test-Fehler: Führe lokal
task testaus - Build-Fehler: Führe lokal
task buildaus
- Überprüfe Secret-Namen (case-sensitive!)
- Stelle sicher, dass Secrets auf Repository-Ebene (nicht Environment) gesetzt sind
- Re-run des Workflows nach Secret-Änderungen
- Überprüfe, ob Pages in Settings aktiviert ist
- Warte ~5 Minuten nach dem ersten Deploy
- Stelle sicher, dass
docs.ymlerfolgreich durchlief
GitHub Actions können lokal mit act getestet werden:
# act installieren (macOS)
brew install act
# Workflow lokal ausführen
act -j lint
act -j test
act -j buildHinweis: Secrets müssen in .secrets Datei bereitgestellt werden.