natiivinodehommajuttuja

This commit is contained in:
Jaakko Vanhala
2026-04-11 18:13:50 +03:00
parent 591cfcb04b
commit 660e80c2bc
5 changed files with 45 additions and 14 deletions

View File

@@ -4,8 +4,17 @@ set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
OUT="$SCRIPT_DIR/frontend/public/download" OUT="$SCRIPT_DIR/frontend/public/download"
HASH_FILE="$OUT/.build-hash"
mkdir -p "$OUT" 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 ===" echo "=== Kipinä Node — Binary Build ==="
# macOS ARM (natiivi) # 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" 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}')" echo " $(ls -lh "$OUT/kipina-node-windows-x86_64.exe" | awk '{print $5}')"
# Tallennetaan onnistuneen buildin hash
echo "$CURRENT_HASH" > "$HASH_FILE"
echo "" echo ""
echo "=== Binäärit valmiina ===" echo "=== Binäärit valmiina ==="
ls -lh "$OUT"/kipina-node-* ls -lh "$OUT"/kipina-node-*

View File

@@ -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"

View File

@@ -35,29 +35,25 @@ if ! git -C "$SCRIPT_DIR" diff --quiet HEAD 2>/dev/null || \
echo " Commitoitu: $DEPLOY_MSG" echo " Commitoitu: $DEPLOY_MSG"
fi fi
# 1. Käännetään native-node-binäärit kaikille alustoille # 1. Rakennetaan Docker-image lokaalisti
echo "[1/6] Käännetään native-node-binäärit..." echo "[1/4] Rakennetaan image lokaalisti..."
./build-binaries.sh
# 2. Rakennetaan Docker-image lokaalisti
echo "[2/6] Rakennetaan image lokaalisti..."
docker build --platform linux/amd64 -f Dockerfile.prod -t kipina-agentic:latest . docker build --platform linux/amd64 -f Dockerfile.prod -t kipina-agentic:latest .
# 3. Tallennetaan tiedostoon # 2. Tallennetaan tiedostoon
echo "[3/6] Pakataan image..." echo "[2/4] Pakataan image..."
docker save kipina-agentic:latest | gzip > /tmp/kipina-agentic.tar.gz docker save kipina-agentic:latest | gzip > /tmp/kipina-agentic.tar.gz
echo " Koko: $(du -h /tmp/kipina-agentic.tar.gz | cut -f1)" echo " Koko: $(du -h /tmp/kipina-agentic.tar.gz | cut -f1)"
# 4. Siirretään palvelimelle # 3. Siirretään palvelimelle
echo "[4/6] Siirretään palvelimelle..." echo "[3/4] Siirretään palvelimelle..."
scp $SSH_OPTS /tmp/kipina-agentic.tar.gz $SERVER:/tmp/ scp $SSH_OPTS /tmp/kipina-agentic.tar.gz $SERVER:/tmp/
scp $SSH_OPTS docker-compose.prod.yml Caddyfile.prod $SERVER:$REMOTE_DIR/ scp $SSH_OPTS docker-compose.prod.yml Caddyfile.prod $SERVER:$REMOTE_DIR/
# 5. Ladataan image ja käynnistetään # 4. Ladataan image ja käynnistetään
echo "[5/6] Ladataan image palvelimella..." 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" 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" 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 ===" echo "=== Valmis! https://kipina.studio ==="

View File

@@ -0,0 +1 @@
fc5fac8455bbb502ae98e22408bb92f9072cdf8a

View File

@@ -107,8 +107,17 @@ echo " ✓ Malli $MODEL valmis"
# Lataa binääri # Lataa binääri
BIN_PATH="./kipina-node-bin" 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 if [ ! -f "$BIN_PATH" ]; then
echo " Ladataan $BINARY..." echo " Ladataan tuorein $BINARY..."
curl -sSL "$BASE_URL/$BINARY" -o "$BIN_PATH" curl -sSL "$BASE_URL/$BINARY" -o "$BIN_PATH"
chmod +x "$BIN_PATH" chmod +x "$BIN_PATH"
fi fi