Deploy-putki: Windows-build + automaattinen binäärikäännös

build-binaries.sh: lisätty Windows x86_64 (mingw-w64) neljänneksi
kohteeksi. deploy.sh: binäärit käännetään automaattisesti ennen
Docker-buildia, jolloin ne päätyvät Astron kautta kipina.studioon.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-11 18:03:53 +03:00
parent b1de0d37f7
commit 9f58febe21
2 changed files with 25 additions and 12 deletions

View File

@@ -9,14 +9,14 @@ mkdir -p "$OUT"
echo "=== Kipinä Node — Binary Build ===" echo "=== Kipinä Node — Binary Build ==="
# macOS ARM (natiivi) # macOS ARM (natiivi)
echo "[1/3] macOS ARM64..." echo "[1/4] macOS ARM64..."
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
cargo build --release -p native-node --no-default-features 2>&1 | tail -1 cargo build --release -p native-node --no-default-features 2>&1 | tail -1
cp target/release/native-node "$OUT/kipina-node-macos-arm64" cp target/release/native-node "$OUT/kipina-node-macos-arm64"
echo " $(ls -lh "$OUT/kipina-node-macos-arm64" | awk '{print $5}')" echo " $(ls -lh "$OUT/kipina-node-macos-arm64" | awk '{print $5}')"
# Linux x86_64 (Docker) # Linux x86_64 (Docker)
echo "[2/3] Linux x86_64..." echo "[2/4] Linux x86_64..."
docker run --rm \ docker run --rm \
-v "$SCRIPT_DIR":/app -w /app \ -v "$SCRIPT_DIR":/app -w /app \
--platform linux/amd64 \ --platform linux/amd64 \
@@ -25,7 +25,7 @@ docker run --rm \
echo " $(ls -lh "$OUT/kipina-node-linux-x86_64" | awk '{print $5}')" echo " $(ls -lh "$OUT/kipina-node-linux-x86_64" | awk '{print $5}')"
# Linux ARM64 (Docker) # Linux ARM64 (Docker)
echo "[3/3] Linux ARM64..." echo "[3/4] Linux ARM64..."
docker run --rm \ docker run --rm \
-v "$SCRIPT_DIR":/app -w /app \ -v "$SCRIPT_DIR":/app -w /app \
--platform linux/arm64 \ --platform linux/arm64 \
@@ -33,6 +33,15 @@ docker run --rm \
bash -c "apt-get update -qq && apt-get install -y -qq pkg-config libssl-dev >/dev/null 2>&1 && cargo build --release -p native-node --no-default-features 2>&1 | tail -1 && cp target/release/native-node /app/frontend/public/download/kipina-node-linux-arm64" bash -c "apt-get update -qq && apt-get install -y -qq pkg-config libssl-dev >/dev/null 2>&1 && cargo build --release -p native-node --no-default-features 2>&1 | tail -1 && cp target/release/native-node /app/frontend/public/download/kipina-node-linux-arm64"
echo " $(ls -lh "$OUT/kipina-node-linux-arm64" | awk '{print $5}')" echo " $(ls -lh "$OUT/kipina-node-linux-arm64" | awk '{print $5}')"
# Windows x86_64 (Docker + mingw-w64)
echo "[4/4] Windows x86_64..."
docker run --rm \
-v "$SCRIPT_DIR":/app -w /app \
--platform linux/amd64 \
rust:slim \
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 "" echo ""
echo "=== Binäärit valmiina ===" echo "=== Binäärit valmiina ==="
ls -lh "$OUT"/kipina-node-* ls -lh "$OUT"/kipina-node-*

View File

@@ -35,25 +35,29 @@ if ! git -C "$SCRIPT_DIR" diff --quiet HEAD 2>/dev/null || \
echo " Commitoitu: $DEPLOY_MSG" echo " Commitoitu: $DEPLOY_MSG"
fi fi
# 1. Rakennetaan Docker-image lokaalisti # 1. Käännetään native-node-binäärit kaikille alustoille
echo "[1/4] Rakennetaan image lokaalisti..." echo "[1/6] Käännetään native-node-binäärit..."
./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 .
# 2. Tallennetaan tiedostoon # 3. Tallennetaan tiedostoon
echo "[2/5] Pakataan image..." echo "[3/6] 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)"
# 3. Siirretään palvelimelle # 4. Siirretään palvelimelle
echo "[3/5] Siirretään palvelimelle..." echo "[4/6] 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/
# 4. Ladataan image ja käynnistetään # 5. Ladataan image ja käynnistetään
echo "[4/5] Ladataan image palvelimella..." echo "[5/6] 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 "[5/5] Käynnistetään palvelut uudelleen..." echo "[6/6] 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 ==="