Files
nl-im-websocket-demo/build.sh
2025-07-03 12:49:49 +08:00

53 lines
1.5 KiB
Bash

#!/bin/bash
# 项目名称
PROJECT="xk-websocket"
# 设置时间格式
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
# 创建目标目录
DIST_DIR="dist"
mkdir -p $DIST_DIR
# 清理旧构建
echo "🧹 清理旧构建文件..."
find $DIST_DIR -name "${PROJECT}-*" -delete
echo "🚀 开始构建 ${PROJECT}..."
echo "⏰ 构建时间: $TIMESTAMP"
# 构建 Linux 版本
echo "🐧 构建 Linux (amd64) 版本..."
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o $DIST_DIR/${PROJECT}-linux-amd64-${TIMESTAMP} .
# 构建 Linux ARM 版本 (适合树莓派)
echo "🍓 构建 Linux (arm64) 版本..."
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o $DIST_DIR/${PROJECT}-linux-arm64-${TIMESTAMP} .
# 构建 Windows 版本
echo "🪟 构建 Windows (amd64) 版本..."
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o $DIST_DIR/${PROJECT}-windows-amd64-${TIMESTAMP}.exe .
# 压缩文件
echo "📦 压缩构建文件..."
pushd $DIST_DIR >/dev/null
# Linux amd64
tar -czf ${PROJECT}-linux-amd64-${TIMESTAMP}.tar.gz ${PROJECT}-linux-amd64-${TIMESTAMP}
rm ${PROJECT}-linux-amd64-${TIMESTAMP}
# Linux arm64
tar -czf ${PROJECT}-linux-arm64-${TIMESTAMP}.tar.gz ${PROJECT}-linux-arm64-${TIMESTAMP}
rm ${PROJECT}-linux-arm64-${TIMESTAMP}
# Windows
zip -q ${PROJECT}-windows-amd64-${TIMESTAMP}.zip ${PROJECT}-windows-amd64-${TIMESTAMP}.exe
rm ${PROJECT}-windows-amd64-${TIMESTAMP}.exe
popd >/dev/null
echo "✅ 构建完成!"
echo "📁 输出目录: $DIST_DIR"
echo "📦 生成文件:"
ls -lh $DIST_DIR/*${TIMESTAMP}*