Debian trixie-based build-compile-deploy workflow

This commit is contained in:
Mikkeli Matlock
2026-01-24 23:18:37 +09:00
parent 90ed757976
commit aabca4915c
8 changed files with 311 additions and 36 deletions

View File

@@ -14,14 +14,21 @@ if [ ! -f "$CONFIG_FILE" ]; then
exit 1
fi
HOST=$(jq -r '.host' "$CONFIG_FILE")
REMOTE_PATH=$(jq -r '.remote_path' "$CONFIG_FILE")
SERVICE_NAME=$(jq -r '.service_name' "$CONFIG_FILE")
# Parse JSON with Python (more universal than jq)
read_json() {
python3 -c "import json; print(json.load(open('$CONFIG_FILE'))['$1'])"
}
PI_USER=$(read_json user)
PI_HOST=$(read_json host)
REMOTE_PATH=$(read_json remote_path)
SERVICE_NAME=$(read_json service_name)
SSH_TARGET="$PI_USER@$PI_HOST"
BUILD_DIR="$PROJECT_ROOT/pi/ui/build/elinux/arm64/release/bundle"
echo "=== Smart Serow Deploy ==="
echo "Target: $HOST:$REMOTE_PATH"
echo "Target: $SSH_TARGET:$REMOTE_PATH"
echo "Source: $BUILD_DIR"
if [ ! -d "$BUILD_DIR" ]; then
@@ -34,20 +41,20 @@ echo ""
echo "Syncing files..."
rsync -avz --delete \
"$BUILD_DIR/" \
"$HOST:$REMOTE_PATH/bundle/"
"$SSH_TARGET:$REMOTE_PATH/bundle/"
# Restart service if requested
RESTART="${1:-}"
if [ "$RESTART" = "--restart" ] || [ "$RESTART" = "-r" ]; then
echo ""
echo "Restarting service: $SERVICE_NAME"
ssh "$HOST" "sudo systemctl restart $SERVICE_NAME"
ssh "$SSH_TARGET" "sudo systemctl restart $SERVICE_NAME"
sleep 2
ssh "$HOST" "systemctl status $SERVICE_NAME --no-pager"
ssh "$SSH_TARGET" "systemctl status $SERVICE_NAME --no-pager"
else
echo ""
echo "Deploy complete. To restart service, run:"
echo " ssh $HOST 'sudo systemctl restart $SERVICE_NAME'"
echo " ssh $SSH_TARGET 'sudo systemctl restart $SERVICE_NAME'"
echo ""
echo "Or run this script with --restart flag"
fi