Mark Sprint B-1 and B-2 tasks as complete: finalize CI/CD pipeline for headless Compose Desktop tests, implement Gradle build optimizations, and update roadmap. Add new Gitea Actions workflow for desktop builds and tests.
This commit is contained in:
@@ -0,0 +1,63 @@
|
|||||||
|
name: Desktop CI — Headless Tests & Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main, master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main, master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
desktop-tests:
|
||||||
|
name: Compose Desktop — Tests (headless) & Build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup JDK 21 (Temurin)
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: '21'
|
||||||
|
|
||||||
|
- name: Gradle cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
.gradle
|
||||||
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle.properties') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
|
||||||
|
- name: Make gradlew executable
|
||||||
|
run: chmod +x ./gradlew
|
||||||
|
|
||||||
|
- name: Show Gradle version
|
||||||
|
run: ./gradlew --version
|
||||||
|
|
||||||
|
- name: Run Desktop tests headless (Xvfb)
|
||||||
|
env:
|
||||||
|
_JAVA_OPTIONS: -Djava.awt.headless=true
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y Xvfb
|
||||||
|
xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24" \
|
||||||
|
./gradlew :frontend:shells:meldestelle-desktop:jvmTest --stacktrace --no-daemon
|
||||||
|
|
||||||
|
- name: Build Desktop shell (Release)
|
||||||
|
env:
|
||||||
|
_JAVA_OPTIONS: -Djava.awt.headless=true
|
||||||
|
run: |
|
||||||
|
./gradlew :frontend:shells:meldestelle-desktop:build --stacktrace --no-daemon
|
||||||
|
|
||||||
|
- name: Upload build artifacts (Desktop shell)
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: desktop-shell-build
|
||||||
|
path: |
|
||||||
|
frontend/shells/meldestelle-desktop/build/libs/**/*.jar
|
||||||
|
frontend/shells/meldestelle-desktop/build/compose*/**
|
||||||
|
if-no-files-found: warn
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# 🐧 [DevOps Engineer] — Schritt-für-Schritt Roadmap
|
# 🐧 [DevOps Engineer] — Schritt-für-Schritt Roadmap
|
||||||
|
|
||||||
> **Stand:** 2. April 2026
|
> **Stand:** 3. April 2026
|
||||||
> **Rolle:** Docker, CI/CD, Gradle, Security, Desktop-Packaging, Infrastruktur
|
> **Rolle:** Docker, CI/CD, Gradle, Security, Desktop-Packaging, Infrastruktur
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -24,17 +24,23 @@
|
|||||||
|
|
||||||
## 🟠 Sprint B — Kurzfristig (nächste Woche)
|
## 🟠 Sprint B — Kurzfristig (nächste Woche)
|
||||||
|
|
||||||
- [ ] **B-1** | CI/CD Pipeline für Compose Desktop Tests (headless)
|
- [x] **B-1** | CI/CD Pipeline für Compose Desktop Tests (headless)
|
||||||
- [ ] GitHub Actions / Gitea Actions Workflow anlegen
|
- [x] Gitea Actions Workflow angelegt: `.gitea/workflows/desktop-tests.yml`
|
||||||
- [ ] Headless-Umgebung für Compose Desktop Tests konfigurieren (Xvfb oder virtueller Framebuffer)
|
- [x] Headless-Umgebung: `xvfb-run` (1920x1080x24) für Compose Desktop Tests
|
||||||
- [ ] Gradle-Task für Desktop-Tests in Pipeline integrieren
|
- [x] Gradle-Task integriert: `:frontend:shells:meldestelle-desktop:jvmTest`
|
||||||
- [ ] Build-Artefakte (JAR / native Binaries) als Pipeline-Ausgabe speichern
|
- [x] Build-Artefakte gespeichert: `frontend/shells/meldestelle-desktop/build/**` (JARs und Compose-Distributables)
|
||||||
- [ ] Fehlgeschlagene Tests als Build-Blocker konfigurieren
|
- [x] Fehlgeschlagene Tests brechen Build ab (Default-Verhalten von Gradle `jvmTest`)
|
||||||
|
|
||||||
- [ ] **B-2** | Gradle-Build-Optimierungen
|
Hinweise:
|
||||||
- [ ] Build-Cache aktivieren und prüfen
|
- CI nutzt JDK 21 (Temurin), Gradle-Cache (`actions/cache`).
|
||||||
- [ ] Parallele Modul-Builds konfigurieren
|
- Artefakte: Upload via `actions/upload-artifact`. Pfade siehe Workflow.
|
||||||
- [ ] Gradle-Wrapper-Version auf aktuellen Stand bringen
|
- Siehe: `docs/01_Architecture/Gitea/Enable_Gitea_Actions_Cache_to_Accelerate_CI_CD.md` für Runner-Cache.
|
||||||
|
|
||||||
|
- [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)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user