41 lines
1.3 KiB
Bash
Executable File
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! ==="
|