Debian trixie-based build-compile-deploy workflow
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user