11#! /bin/bash
22
3+
4+ # 检查第一个参数是否是 is "release"
5+ if [ " $1 " == " release" ] || [ " $1 " == " r" ]; then
6+ MODE_FLAG=" -X main.mod=release"
7+ else
8+ MODE_FLAG=" -X main.mod=debug"
9+ fi
10+
11+
12+
313REPO_NAME=$( basename $( git rev-parse --show-toplevel) )
414
515# 获取最新提交的哈希值
3545# 其他变量
3646GIT_HASH=$( git rev-parse HEAD)
3747BUILD_DATE=$( date +%Y-%m-%dT%H:%M:%S)
38- LD_FLAGS=" -X main.version=$VERSION -X main.buildDate=$BUILD_DATE -X main.gitHash=$GIT_HASH "
39-
40- echo " REPO_NAME=$REPO_NAME "
41- echo " VERSION=$VERSION "
42- echo " BUILD_DATE=$BUILD_DATE "
43- echo " GIT_HASH=$GIT_HASH "
44-
45- echo " Building $REPO_NAME -linux-arm"
46-
48+ LD_FLAGS=" -X main.version=$VERSION -X main.buildDate=$BUILD_DATE -X main.gitHash=$GIT_HASH $MODE_FLAG "
49+
50+ # 打印信息
51+ echo " =============================================="
52+ echo " BUILD INFORMATION"
53+ echo " =============================================="
54+ echo " "
55+ echo " REPO_NAME: $REPO_NAME "
56+ echo " VERSION: $VERSION "
57+ echo " BUILD_DATE: $BUILD_DATE "
58+ echo " GIT_HASH: $GIT_HASH "
59+ echo " MODE_FLAG: $MODE_FLAG "
60+ echo " "
61+ echo " =============================================="
62+ echo " BUILD PROCESS"
63+ echo " =============================================="
64+
65+
66+ # 编译流程
67+ echo " Running 'go mod tidy'"
4768go mod tidy
4869
49- # 编译 ARM、x64 的 Linux 版本
70+ # Build ARM Linux version
71+ echo " Building $REPO_NAME -linux-arm"
5072GOOS=linux GOARCH=arm go build -ldflags " $LD_FLAGS " -o " output/$REPO_NAME -linux-arm" ./...
5173
74+ # Build AMD64 Linux version
5275echo " Building $REPO_NAME -linux-amd64"
5376GOOS=linux GOARCH=amd64 go build -ldflags " $LD_FLAGS " -o " output/$REPO_NAME -linux-amd64" ./...
5477
78+ # Build Windows AMD64 version with .exe extension
5579echo " Building $REPO_NAME -windows-amd64.exe"
56- # 编译 x64 的 Windows 版本并附加 .exe 扩展名
5780GOOS=windows GOARCH=amd64 go build -ldflags " $LD_FLAGS " -o " output/$REPO_NAME -windows-amd64.exe" ./...
5881
82+ # 进入output目录
5983cd " output"
6084
61- # 打包输出文件并携带 .env 和 auth.yaml 文件
85+ # 将 .env 和 auth.yaml 打包到输出产物
86+ echo " =============================================="
87+ echo " PACKAGING"
88+ echo " =============================================="
89+ echo " "
6290echo " Packaging $REPO_NAME -linux-arm.tar.gz"
6391tar -czf " $REPO_NAME -linux-arm.tar.gz" " $REPO_NAME -linux-arm" ../.env ../auth.yaml
6492
@@ -68,8 +96,14 @@ tar -czf "$REPO_NAME-linux-amd64.tar.gz" "$REPO_NAME-linux-amd64" ../.env ../aut
6896echo " Packaging $REPO_NAME -windows-amd64.tar.gz"
6997tar -czf " $REPO_NAME -windows-amd64.tar.gz" " $REPO_NAME -windows-amd64.exe" ../.env ../auth.yaml
7098
71- rm " $REPO_NAME -linux-arm"
72- rm " $REPO_NAME -linux-amd64"
73- rm " $REPO_NAME -windows-amd64.exe"
99+ # 清理临时文件
100+ echo " =============================================="
101+ echo " CLEAN UP"
102+ echo " =============================================="
103+ echo " "
104+ echo " Removing temporary files"
105+ # rm "$REPO_NAME-linux-arm"
106+ # rm "$REPO_NAME-linux-amd64"
107+ # rm "$REPO_NAME-windows-amd64.exe"
74108
75109echo " Packaging complete!"
0 commit comments