docs: restructure and streamline sprint execution order
- Consolidated and removed redundant steps in `SPRINT_EXECUTION_ORDER.md`. - Simplified descriptions and roadmap formatting for improved clarity. - Updated progress and dependencies to align with Phase 8 objectives. - Adjusted role-specific roadmaps to reflect the latest sprint updates. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -1,50 +1,36 @@
|
||||
# 🐧 [DevOps Engineer] — Schritt-für-Schritt Roadmap
|
||||
# 🐧 [DevOps Engineer] — Zwischenstand & Roadmap
|
||||
|
||||
> **Stand:** 3. April 2026
|
||||
> **Rolle:** Docker, CI/CD, Gradle, Security, Desktop-Packaging, Infrastruktur
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Sprint A — Sofort (diese Woche)
|
||||
## ✅ Erledigte Sprints
|
||||
|
||||
- [x] **A-1** | Docker-Compose-Setup auf aktuellen Stand bringen
|
||||
- [x] Alle Services (Backend, DB, Infra) in `docker-compose.yaml` / `dc-*.yaml` prüfen
|
||||
- [x] Sicherstellen: Lokale Entwicklungsumgebung startet mit einem einzigen Befehl
|
||||
- [x] Healthchecks für alle Services definieren
|
||||
### Sprint A — Abgeschlossen
|
||||
|
||||
Hinweise:
|
||||
- Ein-Kommando-Start (alle Profile):
|
||||
```bash
|
||||
docker compose --profile all up -d
|
||||
```
|
||||
- Healthchecks ergänzt für: `api-gateway`, `ping-service`, `web-app`, `zipkin`.
|
||||
- `depends_on` vereinheitlicht: Keycloak wird von Backend-Services mit `service_healthy` abgewartet.
|
||||
- [x] **A-1** | Docker-Compose-Setup auf aktuellen Stand gebracht
|
||||
- [x] Alle Services in `docker-compose.yaml` / `dc-*.yaml` geprüft
|
||||
- [x] Lokale Entwicklungsumgebung startet mit einem einzigen Befehl
|
||||
- [x] Healthchecks für alle Services definiert
|
||||
|
||||
---
|
||||
|
||||
## 🟠 Sprint B — Kurzfristig (nächste Woche)
|
||||
### Sprint B — Abgeschlossen
|
||||
|
||||
- [x] **B-1** | CI/CD Pipeline für Compose Desktop Tests (headless)
|
||||
- [x] Gitea Actions Workflow angelegt: `.gitea/workflows/desktop-tests.yml`
|
||||
- [x] Headless-Umgebung: `xvfb-run` (1920x1080x24) für Compose Desktop Tests
|
||||
- [x] Gradle-Task integriert: `:frontend:shells:meldestelle-desktop:jvmTest`
|
||||
- [x] Build-Artefakte gespeichert: `frontend/shells/meldestelle-desktop/build/**` (JARs und Compose-Distributables)
|
||||
- [x] Fehlgeschlagene Tests brechen Build ab (Default-Verhalten von Gradle `jvmTest`)
|
||||
|
||||
Hinweise:
|
||||
- CI nutzt JDK 21 (Temurin), Gradle-Cache (`actions/cache`).
|
||||
- Artefakte: Upload via `actions/upload-artifact`. Pfade siehe Workflow.
|
||||
- Siehe: `docs/01_Architecture/Gitea/Enable_Gitea_Actions_Cache_to_Accelerate_CI_CD.md` für Runner-Cache.
|
||||
- [x] Gitea Actions Workflow: `.gitea/workflows/desktop-tests.yml`
|
||||
- [x] Headless-Umgebung: `xvfb-run` (1920×1080×24) für Compose Desktop Tests
|
||||
- [x] Gradle-Task: `:frontend:shells:meldestelle-desktop:jvmTest`
|
||||
- [x] Build-Artefakte gespeichert (JARs, Compose-Distributables)
|
||||
|
||||
- [x] **B-2** | Gradle-Build-Optimierungen
|
||||
- [x] Build-Cache aktiv: `org.gradle.caching=true` (in `gradle.properties`)
|
||||
- [x] Parallele Builds aktiv: `org.gradle.parallel=true` (in `gradle.properties`)
|
||||
- [x] Headless-Flag gesetzt: `-Djava.awt.headless=true` (in `org.gradle.jvmargs`)
|
||||
- [x] Wrapper aktualisiert: Gradle `9.4.0` (kompatibel mit aktuellem Setup)
|
||||
- [x] Build-Cache aktiv: `org.gradle.caching=true`
|
||||
- [x] Parallele Builds aktiv: `org.gradle.parallel=true`
|
||||
- [x] Headless-Flag: `-Djava.awt.headless=true`
|
||||
- [x] Gradle Wrapper auf `9.4.0` aktualisiert
|
||||
|
||||
---
|
||||
|
||||
## 🟡 Sprint C — Mittelfristig (in 2 Wochen)
|
||||
## 🔴 Sprint C — Priorität 1 (diese Woche)
|
||||
|
||||
- [ ] **C-1** | Desktop-App Packaging konfigurieren
|
||||
- [ ] `compose.desktop.nativeDistributions` in `build.gradle.kts` konfigurieren
|
||||
@@ -56,10 +42,10 @@
|
||||
|
||||
- [ ] **C-2** | Semantic Versioning einführen
|
||||
- [ ] Versionierungsschema definieren: `MAJOR.MINOR.PATCH`
|
||||
- [ ] Gemeinsame Versions-Quelle für Client (Frontend) und Server (Backend) festlegen
|
||||
- [ ] Gemeinsame Versions-Quelle für Frontend und Backend festlegen
|
||||
- [ ] Git-Tagging-Strategie definieren (`v1.0.0`, `v1.0.0-backend`, etc.)
|
||||
- [ ] Release-Tagging in CI/CD-Pipeline integrieren
|
||||
- [ ] `CHANGELOG.md` Vorlage anlegen
|
||||
- [ ] `CHANGELOG.md`-Vorlage anlegen
|
||||
|
||||
- [ ] **C-3** | Produktions-Deployment vorbereiten
|
||||
- [ ] Reverse-Proxy-Konfiguration (Nginx / Traefik) für Backend prüfen
|
||||
@@ -68,21 +54,34 @@
|
||||
|
||||
---
|
||||
|
||||
## ⏸️ Zurückgestellt
|
||||
## 🟠 Sprint D — Priorität 2 (nächste Woche)
|
||||
|
||||
> ⏸️ **USB-Stick Fallback** — Separate Besprechung zu einem späteren Zeitpunkt
|
||||
> ⏸️ **Web-App Deployment** — Wird erst nach Desktop-App (Sprint A+B) gestartet
|
||||
- [ ] **D-1** | Multi-Tenant Datenbankinfrastruktur absichern
|
||||
- [ ] Sicherstellen: Pro-Tenant-Schema in Postgres korrekt isoliert
|
||||
- [ ] Monitoring: Tenant-Schemas in Grafana-Dashboard sichtbar
|
||||
- [ ] Backup: Pro-Tenant-Backup-Strategie definieren
|
||||
|
||||
- [ ] **D-2** | mDNS / LAN-Discovery Infrastruktur (nach ADR-0022)
|
||||
- [ ] mDNS-Dienst (Avahi o. ä.) in Docker-Compose für lokale Entwicklung bereitstellen
|
||||
- [ ] WebSocket-Endpunkt in Nginx/Traefik-Konfiguration durchreichen
|
||||
|
||||
> ⏸️ **Pangolin / externer Zugriff** — Nur für Remote-Support-Szenarien; kein MVP-Blocker
|
||||
|
||||
---
|
||||
|
||||
## 📌 Abhängigkeiten
|
||||
|
||||
| Warte auf | Von wem |
|
||||
|-------------------------|------------------|
|
||||
| Headless-Test-Strategie | 🧐 QA Specialist |
|
||||
| Warte auf | Von wem | Betrifft |
|
||||
|----------------------------|-------------------|---------------------|
|
||||
| ADR-0022 LAN-Sync | 🏗️ Architect B-1 | D-2 mDNS-Infra |
|
||||
| QA: Test-Integration in CI | 🧐 QA C-4 | C-1 Packaging-Tests |
|
||||
|
||||
| Meine Aufgabe | Ermöglicht wem |
|
||||
|---------------------------|----------------------------------------|
|
||||
| CI/CD Pipeline (B-1) | 🧐 QA: Automatisierte Test-Ausführung |
|
||||
| Desktop-Packaging (C-1) | Alle: Auslieferbare Desktop-App |
|
||||
| Semantic Versioning (C-2) | Alle: Koordiniertes Release-Management |
|
||||
---
|
||||
|
||||
## 💡 Empfehlungen (nach Priorität)
|
||||
|
||||
1. **C-1 Desktop-Packaging** — Für erste echte Auslieferung an Endnutzer zwingend notwendig; `.msi`/`.deb` sollten vor
|
||||
dem ersten Beta-Test bereitstehen.
|
||||
2. **C-2 Semantic Versioning** — Ohne klare Versionierung ist kein koordiniertes Release möglich; einfach zu
|
||||
implementieren, hoher Nutzen.
|
||||
3. **D-1 Tenant-Backup** — Wenn eine Veranstaltung = eine Datenbank, muss jeder Tenant einzeln gesichert werden können.
|
||||
|
||||
Reference in New Issue
Block a user