#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BUILD_DIR="$ROOT_DIR/.builds/linux" BACKEND_DIR="$BUILD_DIR/app" WEB_DIR="$BUILD_DIR/web_v1" SITE_DIR="$BUILD_DIR/site" # Override GOARCH when building for another Linux architecture, for example arm64. GOARCH="${GOARCH:-amd64}" rm -rf "$BACKEND_DIR" "$WEB_DIR" "$SITE_DIR" mkdir -p "$BACKEND_DIR" "$WEB_DIR" "$SITE_DIR" ( cd "$ROOT_DIR/backend" go test ./... CGO_ENABLED=0 GOOS=linux GOARCH="$GOARCH" go build -trimpath -o "$BACKEND_DIR/senlin-agent-api" ./cmd/api ) ( cd "$ROOT_DIR/apps/web_v1" npm run build cp -R dist/. "$WEB_DIR/" ) cp -R "$ROOT_DIR/apps/site/." "$SITE_DIR/" echo "Linux backend: $BACKEND_DIR/senlin-agent-api" echo "Web build: $WEB_DIR" echo "Official site: $SITE_DIR"