Files
BionxControl/build_and_deploy.sh
2026-04-03 22:28:07 +02:00

41 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Bricht das Skript ab, falls ein Befehl (z. B. der Build) fehlschlägt
set -e
# --- Variablen (Bitte anpassen!) ---
IMAGE_NAME="qt-cross-rpi"
# Trage hier den genauen Namen deines fertig kompilierten Executables ein:
BINARY_NAME="BionxControl"
TARGET_USER="chris"
TARGET_IP="192.168.0.106"
TARGET_DIR="/home/chris/projects/BionxControl"
# Den Namen der Toolchain aus deiner Vorlage oder der zuvor erstellten Datei
TOOLCHAIN_FILE="armhf-toolchain.cmake"
echo "=== 1. Baue das Docker-Image ==="
docker build -t ${IMAGE_NAME} .
echo "=== 2. Kompiliere das Projekt im Container ==="
# Wir führen die Build-Befehle direkt im Container aus, anstatt interaktiv zu starten.
# Das -it flag wurde entfernt, da wir es als Skript ausführen.
docker run --rm -v "$(pwd):/workspace" ${IMAGE_NAME} bash -c "
echo 'Bereinige altes Build-Verzeichnis...'
rm -rf dockerbuild
mkdir dockerbuild
cd dockerbuild
echo 'Führe CMake aus...'
cmake -DCMAKE_TOOLCHAIN_FILE=../${TOOLCHAIN_FILE} -G Ninja ..
echo 'Starte Build (Ninja)...'
ninja
"
echo "=== 3. Deploy auf den Raspberry Pi via scp ==="
# Kopiert das neu gebaute Binary auf die Zielmaschine
scp "dockerbuild/${BINARY_NAME}" "${TARGET_USER}@${TARGET_IP}:${TARGET_DIR}"
echo "=== Deployment erfolgreich abgeschlossen! ==="