CI CD - Robust-Games/robust GitHub Wiki
GitHub Actions Workflows für RobustServer
Dieses Dokument beschreibt zwei zentrale GitHub Actions Workflows, die für das Projektmodul RobustServer
konfiguriert sind:
- Build: Kompiliert und verpackt den Code (ohne Tests)
- Continuous Integration (CI): Führt Tests aus und erzeugt Coverage-Berichte
1. Build Workflow
Trigger
Der Build startet bei:
-
Push auf
main
odertests
(nur wenn Änderungen in diesen Pfaden vorliegen):robustServer/**
.github/workflows/**
-
Pull Requests auf dieselben Branches und Pfade.
build
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository in den Runner. |
Set up JDK 21 | Installiert Java 21 (Temurin) für den Build-Prozess. |
Gradle Wrapper ausführbar machen | Macht ./gradlew ausführbar. |
Projekt bauen (ohne Tests) | Baut das Projekt mit ./gradlew build -x test . |
Build-Artefakte hochladen | Lädt die erzeugte .jar -Datei als Artefakt in GitHub hoch. |
Java-Version prüfen | Gibt die verwendete Java-Version aus. |
Spring Boot Version prüfen | Listet die Spring-Boot-Abhängigkeit im Projekt auf. |
Dependency Updates prüfen | Prüft verfügbare Updates für Dependencies via Plugin com.github.ben-manes.versions . |
Zweck
Sicherstellung, dass der Code ohne Fehler kompiliert, sowie Überblick über verwendete Java- und Spring-Versionen und Abhängigkeitsstatus.
2. Continuous Integration (Test & Coverage)
Trigger
Der CI-Testworkflow wird bei denselben Bedingungen wie der Build ausgelöst, aber mit Pfad- und Branch-Unterscheidung für RobustServer
(Großschreibung beachten):
- Push oder Pull Request auf
main
odertests
- Änderungen in:
RobustServer/**
.github/workflows/**
test
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository. |
Set up JDK 21 | Installiert Java 21 (Temurin). |
Gradle Wrapper ausführbar machen | Macht ./gradlew ausführbar. |
Tests ausführen | Führt Unit- und Integrationstests mit ./gradlew test aus. |
Coverage-Report erzeugen | Erzeugt Code-Coverage-Bericht mit jacocoTestReport . |
Coverage-Report hochladen | Lädt den Coverage-Report (build/reports/jacoco/test/html ) als Artefakt hoch. |
Zweck
Automatisches Testen des Codes und Erfassung der Testabdeckung zur Qualitätssicherung.
GitHub Actions Workflows für RobustServer
Dieses Dokument beschreibt zwei zentrale GitHub Actions Workflows, die für das Projektmodul RobustServer
konfiguriert sind:
- Build: Kompiliert und verpackt den Code (ohne Tests)
- Continuous Integration (CI): Führt Tests aus und erzeugt Coverage-Berichte
1. Build Workflow
Trigger
Der Build startet bei:
-
Push auf
main
odertests
(nur wenn Änderungen in diesen Pfaden vorliegen):robustServer/**
.github/workflows/**
-
Pull Requests auf dieselben Branches und Pfade.
build
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository in den Runner. |
Set up JDK 21 | Installiert Java 21 (Temurin) für den Build-Prozess. |
Gradle Wrapper ausführbar machen | Macht ./gradlew ausführbar. |
Projekt bauen (ohne Tests) | Baut das Projekt mit ./gradlew build -x test . |
Build-Artefakte hochladen | Lädt die erzeugte .jar -Datei als Artefakt in GitHub hoch. |
Java-Version prüfen | Gibt die verwendete Java-Version aus. |
Spring Boot Version prüfen | Listet die Spring-Boot-Abhängigkeit im Projekt auf. |
Dependency Updates prüfen | Prüft verfügbare Updates für Dependencies via Plugin com.github.ben-manes.versions . |
Zweck
Sicherstellung, dass der Code ohne Fehler kompiliert, sowie Überblick über verwendete Java- und Spring-Versionen und Abhängigkeitsstatus.
2. Continuous Integration (Test & Coverage)
Trigger
Der CI-Testworkflow wird bei denselben Bedingungen wie der Build ausgelöst, aber mit Pfad- und Branch-Unterscheidung für RobustServer
(Großschreibung beachten):
- Push oder Pull Request auf
main
odertests
- Änderungen in:
RobustServer/**
.github/workflows/**
test
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository. |
Set up JDK 21 | Installiert Java 21 (Temurin). |
Gradle Wrapper ausführbar machen | Macht ./gradlew ausführbar. |
Tests ausführen | Führt Unit- und Integrationstests mit ./gradlew test aus. |
Coverage-Report erzeugen | Erzeugt Code-Coverage-Bericht mit jacocoTestReport . |
Coverage-Report hochladen | Lädt den Coverage-Report (build/reports/jacoco/test/html ) als Artefakt hoch. |
Zweck
Automatisches Testen des Codes und Erfassung der Testabdeckung zur Qualitätssicherung.
3. Continuous Integration (CI) für robustClient & robustServer (Tests + Coverage)
Trigger
- Push oder Pull Request auf
main
odertests
- Änderungen in:
robustClient/**
robustServer/**
.github/workflows/**
test
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository. |
Set up JDK 21 | Installiert Java 21 (Temurin). |
Gradle Wrapper ausführbar machen (robustClient) | Macht ./robustClient/gradlew ausführbar. |
Tests ausführen (robustClient) | Führt Tests mit ./robustClient/gradlew test aus. |
Coverage-Report erzeugen (robustClient) | Erzeugt Coverage mit ./robustClient/gradlew jacocoTestReport . |
Coverage-Report hochladen (robustClient) | Lädt Coverage-Report robustClient/build/reports/jacoco/test/html hoch. |
Gradle Wrapper ausführbar machen (robustServer) | Macht ./robustServer/gradlew ausführbar. |
Tests ausführen (robustServer) | Führt Tests mit ./robustServer/gradlew test aus. |
Coverage-Report erzeugen (robustServer) | Erzeugt Coverage mit ./robustServer/gradlew jacocoTestReport . |
Coverage-Report hochladen (robustServer) | Lädt Coverage-Report robustServer/build/reports/jacoco/test/html hoch. |
Zweck
Automatisches Testen und Coverage-Erfassung beider Module für ganzheitliche Qualitätssicherung.
main
4. Continuous Delivery (CD): Automatisches Release bei Push auf Trigger
- Push auf Branch
main
build-and-release
Job: Schritt | Beschreibung |
---|---|
Checkout Repo | Klont das Repository. |
Set up JDK 21 | Installiert Java 21 (Temurin). |
Gradle Wrapper ausführbar machen (robustServer) | Macht ./robustServer/gradlew ausführbar. |
Projekt bauen (robustServer) | Baut das Projekt mit ./robustServer/gradlew build . |
Commit-Nachricht lesen | Liest die letzte Commit-Message für das Release-Comment aus. |
GitHub Release erstellen | Erstellt ein Release mit dem Commit-Hash als Tag und der Commit-Message als Beschreibung. |
Release-Artefakt hochladen | Lädt die erzeugte .jar aus robustServer/build/libs/ als Release-Asset hoch. |
Zweck
Automatische Paketierung und Veröffentlichung neuer Releases bei jedem Push auf main
inklusive Release-Notes aus Commit-Kommentaren.