build.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/bash
  2. set -e
  3. SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
  4. PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
  5. # 构建前端(可选,需配置 WEB_DIR 环境变量指向前端项目目录)
  6. WEB_DIR="${WEB_DIR:-}"
  7. HTML_DIR="$PROJECT_DIR/internal/web/html"
  8. if [ -n "$WEB_DIR" ] && [ -d "$WEB_DIR" ]; then
  9. echo "Building frontend..."
  10. cd "$WEB_DIR" && npm run build
  11. rm -rf "$HTML_DIR"
  12. cp -r dist "$HTML_DIR"
  13. echo "Frontend built and copied."
  14. fi
  15. cd "$PROJECT_DIR"
  16. BINARY_NAME="opencode-monitor"
  17. VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev")
  18. mkdir -p dist
  19. echo "Building for Linux (amd64)..."
  20. GOOS=linux GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-linux-amd64 ./cmd/monitor
  21. echo "Building for Linux (arm64)..."
  22. GOOS=linux GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-linux-arm64 ./cmd/monitor
  23. echo "Building for Windows (amd64)..."
  24. GOOS=windows GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-windows-amd64.exe ./cmd/monitor
  25. echo "Building for Windows (arm64)..."
  26. GOOS=windows GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-windows-arm64.exe ./cmd/monitor
  27. echo ""
  28. echo "Build complete! Binaries in dist/"
  29. ls -la dist/