diff --git a/network-poc/build-binaries.sh b/network-poc/build-binaries.sh index ac0ba42..97b932f 100755 --- a/network-poc/build-binaries.sh +++ b/network-poc/build-binaries.sh @@ -4,8 +4,17 @@ set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" OUT="$SCRIPT_DIR/frontend/public/download" +HASH_FILE="$OUT/.build-hash" mkdir -p "$OUT" +# Tarkistetaan onko native-node muuttunut edellisen buildin jälkeen +CURRENT_HASH=$(git -C "$SCRIPT_DIR" log -1 --format=%H -- native-node/ Cargo.toml Cargo.lock) +if [ -f "$HASH_FILE" ] && [ "$(cat "$HASH_FILE")" = "$CURRENT_HASH" ]; then + echo "=== Kipinä Node — ei muutoksia, ohitetaan build ===" + ls -lh "$OUT"/kipina-node-* 2>/dev/null || true + exit 0 +fi + echo "=== Kipinä Node — Binary Build ===" # macOS ARM (natiivi) @@ -42,6 +51,9 @@ docker run --rm \ bash -c "apt-get update -qq && apt-get install -y -qq gcc-mingw-w64-x86-64 pkg-config libssl-dev >/dev/null 2>&1 && rustup target add x86_64-pc-windows-gnu && cargo build --release -p native-node --no-default-features --target x86_64-pc-windows-gnu 2>&1 | tail -1 && cp target/x86_64-pc-windows-gnu/release/native-node.exe /app/frontend/public/download/kipina-node-windows-x86_64.exe" echo " $(ls -lh "$OUT/kipina-node-windows-x86_64.exe" | awk '{print $5}')" +# Tallennetaan onnistuneen buildin hash +echo "$CURRENT_HASH" > "$HASH_FILE" + echo "" echo "=== Binäärit valmiina ===" ls -lh "$OUT"/kipina-node-* diff --git a/network-poc/deploy-with-native.sh b/network-poc/deploy-with-native.sh new file mode 100755 index 0000000..051a97f --- /dev/null +++ b/network-poc/deploy-with-native.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# Deploy + native-node-binäärien käännös (jos muutoksia) +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" + +echo "=== Kipinä Studio Deploy (+ native binäärit) ===" + +# Käännetään native-node-binäärit (ohittaa automaattisesti jos ei muutoksia) +"$SCRIPT_DIR/build-binaries.sh" + +# Ajetaan normaali deploy +exec "$SCRIPT_DIR/deploy.sh" diff --git a/network-poc/deploy.sh b/network-poc/deploy.sh index 107065d..2d88237 100755 --- a/network-poc/deploy.sh +++ b/network-poc/deploy.sh @@ -35,29 +35,25 @@ if ! git -C "$SCRIPT_DIR" diff --quiet HEAD 2>/dev/null || \ echo " Commitoitu: $DEPLOY_MSG" fi -# 1. Käännetään native-node-binäärit kaikille alustoille -echo "[1/6] Käännetään native-node-binäärit..." -./build-binaries.sh - -# 2. Rakennetaan Docker-image lokaalisti -echo "[2/6] Rakennetaan image lokaalisti..." +# 1. Rakennetaan Docker-image lokaalisti +echo "[1/4] Rakennetaan image lokaalisti..." docker build --platform linux/amd64 -f Dockerfile.prod -t kipina-agentic:latest . -# 3. Tallennetaan tiedostoon -echo "[3/6] Pakataan image..." +# 2. Tallennetaan tiedostoon +echo "[2/4] Pakataan image..." docker save kipina-agentic:latest | gzip > /tmp/kipina-agentic.tar.gz echo " Koko: $(du -h /tmp/kipina-agentic.tar.gz | cut -f1)" -# 4. Siirretään palvelimelle -echo "[4/6] Siirretään palvelimelle..." +# 3. Siirretään palvelimelle +echo "[3/4] Siirretään palvelimelle..." scp $SSH_OPTS /tmp/kipina-agentic.tar.gz $SERVER:/tmp/ scp $SSH_OPTS docker-compose.prod.yml Caddyfile.prod $SERVER:$REMOTE_DIR/ -# 5. Ladataan image ja käynnistetään -echo "[5/6] Ladataan image palvelimella..." +# 4. Ladataan image ja käynnistetään +echo "[4/4] Ladataan image palvelimella..." ssh $SSH_OPTS $SERVER "gunzip -c /tmp/kipina-agentic.tar.gz | docker load && rm /tmp/kipina-agentic.tar.gz" -echo "[6/6] Käynnistetään palvelut uudelleen..." +echo "[4/4] Käynnistetään palvelut uudelleen..." ssh $SSH_OPTS $SERVER "cd $REMOTE_DIR && docker compose -f docker-compose.prod.yml down && docker compose -f docker-compose.prod.yml up -d" echo "=== Valmis! https://kipina.studio ===" diff --git a/network-poc/frontend/public/download/.build-hash b/network-poc/frontend/public/download/.build-hash new file mode 100644 index 0000000..35c29be --- /dev/null +++ b/network-poc/frontend/public/download/.build-hash @@ -0,0 +1 @@ +fc5fac8455bbb502ae98e22408bb92f9072cdf8a diff --git a/network-poc/frontend/public/kipina-node b/network-poc/frontend/public/kipina-node index 22b1945..b7e755d 100644 --- a/network-poc/frontend/public/kipina-node +++ b/network-poc/frontend/public/kipina-node @@ -107,8 +107,17 @@ echo " ✓ Malli $MODEL valmis" # Lataa binääri BIN_PATH="./kipina-node-bin" +if [ -f "$BIN_PATH" ]; then + echo "" + read -p " Löydettiin vanha kipina-node-bin lokaalisti. Haluatko poistaa sen ja ladata uusimman version? [y/N] " -r DEL_CHOICE + if [[ "$DEL_CHOICE" =~ ^[Yy]$ ]]; then + rm -f "$BIN_PATH" + echo " ✓ Vanha binääri poistettu." + fi +fi + if [ ! -f "$BIN_PATH" ]; then - echo " Ladataan $BINARY..." + echo " Ladataan tuorein $BINARY..." curl -sSL "$BASE_URL/$BINARY" -o "$BIN_PATH" chmod +x "$BIN_PATH" fi