diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 73c686a..9b090cc 100755 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -67,7 +67,7 @@ jobs: fi # App-Code-Änderungen, die einen echten Deploy benötigen - if grep -E '^(frontend/|backend/)' changed-files.txt \ + if grep -E '^(frontend/|backend/|update(-frontend|-backend)?\.sh$|update\.sh$|deploy-yourpart-bluegreen\.sh$|falukant-models\.env$)' changed-files.txt \ | grep -Ev "$COURSE_SCRIPT_PATTERN" >/dev/null; then echo "app_changed=true" >> "$GITHUB_OUTPUT" else diff --git a/update-frontend.sh b/update-frontend.sh index ceffcb5..d53360a 100755 --- a/update-frontend.sh +++ b/update-frontend.sh @@ -7,6 +7,7 @@ FRONTEND_DIR="$TARGET_DIR/frontend" CURRENT_LINK="/opt/yourpart" CURRENT_FRONTEND="$CURRENT_LINK/frontend" CURRENT_ROOT_ENV="$CURRENT_LINK/.env" +MODELS_MANIFEST="$TARGET_DIR/falukant-models.env" echo "=== YourPart Frontend Update ===" echo "Ziel: $FRONTEND_DIR" @@ -54,14 +55,36 @@ echo "VITE_CHAT_WS_URL=$VITE_CHAT_WS_URL" echo "Installiere Dependencies..." npm install +if [ ! -f "$MODELS_MANIFEST" ]; then + echo "ERROR: Falukant model manifest missing: $MODELS_MANIFEST" >&2 + exit 1 +fi + +# Source GLBs are versioned as a Gitea release attachment rather than Git +# objects, keeping routine clones and deployments small. +# shellcheck disable=SC1090 +source "$MODELS_MANIFEST" +: "${FALUKANT_MODELS_URL:?Falukant model URL is missing}" +: "${FALUKANT_MODELS_SHA256:?Falukant model checksum is missing}" + +MODELS_ARCHIVE="$(mktemp /tmp/falukant-models-XXXXXX.tar.gz)" +trap 'rm -f "$TEMP_ENV" "$MODELS_ARCHIVE"' EXIT + +echo "Lade Falukant-3D-Modelle (${FALUKANT_MODELS_URL})..." +curl --fail --location --retry 3 --retry-delay 2 \ + --output "$MODELS_ARCHIVE" "$FALUKANT_MODELS_URL" +echo "${FALUKANT_MODELS_SHA256} ${MODELS_ARCHIVE}" | sha256sum --check --status + +echo "Entpacke Falukant-3D-Modelle..." +rm -rf "$FRONTEND_DIR/models-src/3d/falukant" +tar -xzf "$MODELS_ARCHIVE" -C "$TARGET_DIR" + echo "Optimiere Falukant-3D-Modelle..." npm run optimize-models echo "Baue Frontend..." npm run build -rm -f "$TEMP_ENV" - if [ -f "$FRONTEND_DIR/.env" ]; then echo "✓ Bestehende .env-Datei wurde beibehalten" else