### chore: aktualisiere Docker-Publish-Workflow
All checks were successful
All checks were successful
- Entferne veraltete Cache- und Bereinigungsschritte. - Implementiere neue Staging-Methode für Web-Assets ohne rsync. - Aktualisiere Tags für Docker-Build und kommentiere ungenutzte Build-Args aus. - Füge neuen Screenshot für Dokumentation hinzu.
This commit is contained in:
parent
46d3d7cf35
commit
f620f46d15
|
|
@ -54,53 +54,40 @@ jobs:
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
cache: gradle
|
cache: gradle
|
||||||
|
|
||||||
- name: Setup Gradle Cache
|
# --- SCHRITT 1: Build mit radikalem Clean (gegen die März-Leichen) ---
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.gradle/caches
|
|
||||||
~/.gradle/wrapper
|
|
||||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-gradle-
|
|
||||||
|
|
||||||
# Verhindert mysteriöse Build-Fehler durch korrupte Node/Kotlin-Caches (nur web-app relevant)
|
|
||||||
- name: Cleanup stale build caches
|
|
||||||
if: matrix.service == 'web-app'
|
|
||||||
run: |
|
|
||||||
rm -rf frontend/shells/meldestelle-web/build/js/node_modules/.cache || true
|
|
||||||
rm -rf frontend/shells/meldestelle-web/build/js/.yarn/cache || true
|
|
||||||
rm -rf ~/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable || true
|
|
||||||
|
|
||||||
- name: Build Frontend (Wasm JS)
|
- name: Build Frontend (Wasm JS)
|
||||||
if: matrix.service == 'web-app'
|
if: matrix.service == 'web-app'
|
||||||
run: |
|
run: |
|
||||||
chmod +x gradlew
|
chmod +x gradlew
|
||||||
# Zuerst ALLES löschen, um Stand vom März zu eliminieren
|
# Löscht alte Build-Stände komplett
|
||||||
./gradlew :frontend:shells:meldestelle-web:clean
|
./gradlew :frontend:shells:meldestelle-web:clean
|
||||||
|
|
||||||
# Neu bauen mit explizitem Production-Flag
|
|
||||||
./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution \
|
./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution \
|
||||||
-Pproduction=true \
|
-Pproduction=true \
|
||||||
--max-workers=4 \
|
--max-workers=4 \
|
||||||
-Dkotlin.daemon.jvm.options="-Xmx4g"
|
-Dkotlin.daemon.jvm.options="-Xmx4g"
|
||||||
|
|
||||||
|
# --- SCHRITT 2: Staging ohne rsync (Fix für dein Log-Fehler) ---
|
||||||
- name: Stage Web Assets for Docker build
|
- name: Stage Web Assets for Docker build
|
||||||
if: matrix.service == 'web-app'
|
if: matrix.service == 'web-app'
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
DIST_DIR="frontend/shells/meldestelle-web/build/dist/wasmJs/productionExecutable"
|
DIST_DIR="frontend/shells/meldestelle-web/build/dist/wasmJs/productionExecutable"
|
||||||
|
TARGET_DIR="config/docker/caddy/web-app/_site"
|
||||||
|
|
||||||
# Sicherheitscheck: Wenn die index.html älter als 5 Minuten ist, Build abbrechen
|
if [ ! -d "$DIST_DIR" ]; then
|
||||||
if [ $(find "$DIST_DIR/index.html" -mmin +5) ]; then
|
echo "❌ Fehler: Build-Verzeichnis nicht gefunden!"
|
||||||
echo "❌ FEHLER: Build-Artefakte sind veraltet! März-Leiche erkannt."
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p config/docker/caddy/web-app/_site
|
# Ersetzt rsync durch sicheres Löschen & Kopieren
|
||||||
rsync -a --delete "$DIST_DIR/" config/docker/caddy/web-app/_site/
|
rm -rf "$TARGET_DIR"
|
||||||
echo "✓ Frische Assets vom $(date) gestaged."
|
mkdir -p "$TARGET_DIR"
|
||||||
|
cp -r "$DIST_DIR"/. "$TARGET_DIR/"
|
||||||
|
|
||||||
|
echo "✓ Assets für Docker vorbereitet (Stand: $(date))"
|
||||||
|
|
||||||
|
# --- SCHRITT 3: Login & BuildX ---
|
||||||
# NEU (sauber, nach daemon.json-Fix):
|
# NEU (sauber, nach daemon.json-Fix):
|
||||||
- name: Login to Gitea Registry
|
- name: Login to Gitea Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
|
|
@ -125,7 +112,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY_INTERNAL }}/${{ env.IMAGE_PREFIX }}/${{ matrix.image }}
|
images: ${{ env.REGISTRY_INTERNAL }}/${{ env.IMAGE_PREFIX }}/${{ matrix.image }}
|
||||||
tags: |
|
tags: |
|
||||||
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
|
type=raw,value=latest
|
||||||
type=sha,format=long
|
type=sha,format=long
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
|
|
@ -139,10 +126,10 @@ jobs:
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
provenance: false
|
provenance: false
|
||||||
sbom: false
|
sbom: false
|
||||||
build-args: |
|
# build-args: |
|
||||||
DOCKER_BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
# DOCKER_BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||||
VERSION=${{ github.sha }}
|
# VERSION=${{ github.sha }}
|
||||||
GRADLE_VERSION=${{ env.GRADLE_VERSION }}
|
# GRADLE_VERSION=${{ env.GRADLE_VERSION }}
|
||||||
JAVA_VERSION=${{ env.JAVA_VERSION }}
|
# JAVA_VERSION=${{ env.JAVA_VERSION }}
|
||||||
KEYCLOAK_IMAGE_TAG=${{ env.KEYCLOAK_IMAGE_TAG }}
|
# KEYCLOAK_IMAGE_TAG=${{ env.KEYCLOAK_IMAGE_TAG }}
|
||||||
JVM_OPTS_APPEND=${{ env.JVM_OPTS_ARM64 }}
|
# JVM_OPTS_APPEND=${{ env.JVM_OPTS_ARM64 }}
|
||||||
|
|
|
||||||
BIN
docs/ScreenShots/Online-Nenn-Vorlage_2026-04-23_02-46.png
Normal file
BIN
docs/ScreenShots/Online-Nenn-Vorlage_2026-04-23_02-46.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
Loading…
Reference in New Issue
Block a user