chore(infra): optimize Gradle builds, add Keycloak to CI, and improve Docker caching

This commit is contained in:
2026-02-13 20:10:22 +01:00
parent 0a0f5af3bd
commit 49c53aa912
+14 -15
View File
@@ -23,6 +23,8 @@ env:
# Build Arguments für Zora (ARM64 Power)
JAVA_VERSION: "25"
GRADLE_VERSION: "9.3.1"
# OPTIMIERUNG: Gradle Parameter für mehr Speed
GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.workers.max=8"
# Deine neuen JVM Power-Flags für ARM64 (Cortex-A720)
JVM_OPTS_ARM64: "-XX:ActiveProcessorCount=12 -XX:+UseG1GC -XX:+UseTransparentHugePages -XX:+UseSVE=1"
@@ -33,6 +35,11 @@ jobs:
fail-fast: false
matrix:
include:
# NEU: Keycloak wird jetzt auch automatisch gebaut und gepusht
- service: keycloak
context: .
dockerfile: config/docker/keycloak/Dockerfile
image: keycloak
- service: api-gateway
context: .
dockerfile: backend/infrastructure/gateway/Dockerfile
@@ -45,11 +52,6 @@ jobs:
context: .
dockerfile: config/docker/caddy/web-app/Dockerfile
image: web-app
# NEU: Keycloak wird jetzt auch automatisch gebaut und gepusht
- service: keycloak
context: .
dockerfile: config/docker/keycloak/Dockerfile
image: keycloak
steps:
- name: Checkout repository
@@ -78,12 +80,11 @@ jobs:
if: matrix.service == 'web-app'
run: |
chmod +x gradlew
./gradlew :frontend:shells:meldestelle-portal:jsBrowserDistribution -Pproduction=true --no-daemon
# OPTIMIERUNG: QEMU entfernt, da der Runner nativ auf ARM64 (Zora) läuft.
# Docker Buildx für effizienten Build-Support
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# Wir nutzen --no-daemon im Runner, geben aber mehr Memory
./gradlew :frontend:shells:meldestelle-portal:jsBrowserDistribution \
-Pproduction=true \
--max-workers=8 \
-Dkotlin.daemon.jvm.options="-Xmx4g"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@@ -128,7 +129,5 @@ jobs:
JAVA_VERSION=${{ env.JAVA_VERSION }}
KEYCLOAK_IMAGE_TAG=26.4
JVM_OPTS_APPEND=${{ env.JVM_OPTS_ARM64 }}
# # KORREKTUR: 'inline' Cache statt 'gha' für Gitea-Kompatibilität
# cache-from: type=inline
# cache-to: type=inline,mode=max
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max