32 lines
1.2 KiB
Bash
Executable File
32 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
||
set -e # 出错立即退出,便于定位问题
|
||
|
||
# ========== 核心配置(根据你的项目修改) ==========
|
||
# 1. 必须和go.mod中的module名称一致(关键!)
|
||
MODULE_NAME="sunhpc"
|
||
# 2. 编译的入口文件路径(你的main.go在cmd/sunhpc下)
|
||
ENTRY_FILE="./cmd/sunhpc/main.go"
|
||
# 3. 输出的可执行文件名称
|
||
APP_NAME="sunhpc"
|
||
# 4. 自定义版本号
|
||
APP_VERSION="v1.0.0"
|
||
|
||
# ========== 获取Git和编译信息(兼容无Git环境) ==========
|
||
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
||
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
|
||
BUILD_TIME=$(date +"%Y-%m-%d-%H:%M:%S")
|
||
|
||
# ========== 编译(核心修复:ldflags格式) ==========
|
||
# 关键:去掉反斜杠,用单层双引号包裹,内部换行分隔参数
|
||
go build -ldflags "
|
||
-X ${MODULE_NAME}/pkg/info.Version=${APP_VERSION}
|
||
-X ${MODULE_NAME}/pkg/info.BuildTime=${BUILD_TIME}
|
||
-X ${MODULE_NAME}/pkg/info.GitCommit=${GIT_COMMIT}
|
||
-X ${MODULE_NAME}/pkg/info.GitBranch=${GIT_BRANCH}
|
||
" -o ${APP_NAME} ${ENTRY_FILE}
|
||
|
||
# ========== 验证提示 ==========
|
||
echo "- 执行文件:./${APP_NAME}"
|
||
echo "- 版本信息:${APP_VERSION} (Git: ${GIT_COMMIT} @ ${GIT_BRANCH})"
|
||
echo "- 编译时间:${BUILD_TIME}"
|