60 lines
2.6 KiB
Bash
Executable File
60 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Käännä kipina-node binäärit kaikille alustoille
|
|
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)
|
|
echo "[1/4] macOS ARM64..."
|
|
cd "$SCRIPT_DIR"
|
|
cargo build --release -p native-node --no-default-features 2>&1 | tail -1
|
|
cp target/release/native-node "$OUT/kipina-node-macos-arm64"
|
|
echo " $(ls -lh "$OUT/kipina-node-macos-arm64" | awk '{print $5}')"
|
|
|
|
# Linux x86_64 (Docker)
|
|
echo "[2/4] Linux 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 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-x86_64"
|
|
echo " $(ls -lh "$OUT/kipina-node-linux-x86_64" | awk '{print $5}')"
|
|
|
|
# Linux ARM64 (Docker)
|
|
echo "[3/4] Linux ARM64..."
|
|
docker run --rm \
|
|
-v "$SCRIPT_DIR":/app -w /app \
|
|
--platform linux/arm64 \
|
|
rust:slim \
|
|
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}')"
|
|
|
|
# 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}')"
|
|
|
|
# Tallennetaan onnistuneen buildin hash
|
|
echo "$CURRENT_HASH" > "$HASH_FILE"
|
|
|
|
echo ""
|
|
echo "=== Binäärit valmiina ==="
|
|
ls -lh "$OUT"/kipina-node-*
|