From 5dbc124b0f208d62bc774e246fe0735976b69d53 Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Sat, 6 Jun 2026 22:26:36 +0200 Subject: [PATCH] =?UTF-8?q?feat(tools):=20verify=5Fbuild.sh=20pr=C3=BCft?= =?UTF-8?q?=20KX-spezifische=20Strings=20vor=20Release-Upload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/verify_build.sh | 97 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100755 tools/verify_build.sh diff --git a/tools/verify_build.sh b/tools/verify_build.sh new file mode 100755 index 0000000000..6c653679c6 --- /dev/null +++ b/tools/verify_build.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash +# Prüft ob ein OrcaSlicer-KX Build-Artefakt die erwarteten Strings enthält. +# Verwendung: +# ./tools/verify_build.sh linux +# ./tools/verify_build.sh windows +# +# Gibt Exit-Code 0 bei Erfolg, 1 bei Fehler zurück. + +set -euo pipefail + +PLATFORM="${1:-}" +ARTIFACT="${2:-}" + +if [[ -z "$PLATFORM" || -z "$ARTIFACT" ]]; then + echo "Verwendung: $0 " + exit 1 +fi + +if [[ ! -f "$ARTIFACT" ]]; then + echo "FEHLER: Artefakt nicht gefunden: $ARTIFACT" + exit 1 +fi + +# Versionstring aus version.inc lesen +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(dirname "$SCRIPT_DIR")" +VERSION=$(grep 'set(SoftFever_VERSION' "$REPO_ROOT/version.inc" | grep -oP '"\K[^"]+') + +if [[ -z "$VERSION" ]]; then + echo "FEHLER: Konnte VERSION nicht aus version.inc lesen" + exit 1 +fi + +echo "=== OrcaSlicer-KX Build-Verifikation ===" +echo "Plattform : $PLATFORM" +echo "Artefakt : $ARTIFACT" +echo "Erwartet : $VERSION" +echo "========================================" + +TMPDIR=$(mktemp -d) +trap "rm -rf $TMPDIR" EXIT + +CHECKS=( + "$VERSION" + "KX-Bridge" + "filament_sub_brands" +) + +BINARY="" + +if [[ "$PLATFORM" == "linux" ]]; then + echo "Extrahiere AppImage..." + chmod +x "$ARTIFACT" + cd "$TMPDIR" + "$ARTIFACT" --appimage-extract bin/orca-slicer 2>/dev/null || \ + "$ARTIFACT" --appimage-extract 2>/dev/null + BINARY=$(find "$TMPDIR/squashfs-root" -name "orca-slicer" -type f | head -1) + if [[ -z "$BINARY" ]]; then + echo "FEHLER: orca-slicer Binary nicht im AppImage gefunden" + exit 1 + fi + +elif [[ "$PLATFORM" == "windows" ]]; then + echo "Extrahiere Windows ZIP..." + unzip -q "$ARTIFACT" "OrcaSlicer.dll" -d "$TMPDIR" 2>/dev/null || true + BINARY="$TMPDIR/OrcaSlicer.dll" + if [[ ! -f "$BINARY" ]]; then + echo "FEHLER: OrcaSlicer.dll nicht im ZIP gefunden" + exit 1 + fi + +else + echo "FEHLER: Unbekannte Plattform '$PLATFORM' (erwartet: linux oder windows)" + exit 1 +fi + +echo "Binary : $BINARY ($(du -sh "$BINARY" | cut -f1))" +echo "" + +FAILED=0 +for needle in "${CHECKS[@]}"; do + if grep -qaF "$needle" "$BINARY" 2>/dev/null; then + echo " [OK] $needle" + else + echo " [FAIL] $needle — NICHT GEFUNDEN" + FAILED=1 + fi +done + +echo "" +if [[ $FAILED -eq 0 ]]; then + echo "=== VERIFIKATION ERFOLGREICH ===" + exit 0 +else + echo "=== VERIFIKATION FEHLGESCHLAGEN — Upload abgebrochen ===" + exit 1 +fi