52 lines
1.9 KiB
Bash
52 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Build Autarch Server Manager
|
|
# Usage: bash build.sh
|
|
#
|
|
# Targets: Linux AMD64 (Debian 13 server)
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
echo "══════════════════════════════════════════════════════"
|
|
echo " Building Autarch Server Manager"
|
|
echo "══════════════════════════════════════════════════════"
|
|
echo
|
|
|
|
# Resolve dependencies
|
|
echo "[1/3] Resolving Go dependencies..."
|
|
go mod tidy
|
|
echo " ✔ Dependencies resolved"
|
|
echo
|
|
|
|
# Build for Linux AMD64 (Debian 13 target)
|
|
echo "[2/3] Building linux/amd64..."
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
|
-ldflags="-s -w" \
|
|
-o autarch-server-manager \
|
|
./cmd/
|
|
echo " ✔ autarch-server-manager ($(ls -lh autarch-server-manager | awk '{print $5}'))"
|
|
echo
|
|
|
|
# Also build for current platform if different
|
|
if [ "$(go env GOOS)" != "linux" ] || [ "$(go env GOARCH)" != "amd64" ]; then
|
|
echo "[3/3] Building for current platform ($(go env GOOS)/$(go env GOARCH))..."
|
|
go build \
|
|
-ldflags="-s -w" \
|
|
-o autarch-server-manager-local \
|
|
./cmd/
|
|
echo " ✔ autarch-server-manager-local"
|
|
else
|
|
echo "[3/3] Current platform is linux/amd64 — skipping duplicate build"
|
|
fi
|
|
|
|
echo
|
|
echo "══════════════════════════════════════════════════════"
|
|
echo " Build complete!"
|
|
echo ""
|
|
echo " Deploy to server:"
|
|
echo " scp autarch-server-manager root@server:/opt/autarch/"
|
|
echo " ssh root@server /opt/autarch/autarch-server-manager"
|
|
echo "══════════════════════════════════════════════════════"
|