Files
goalfylearning-admin/build.sh

50 lines
1.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 检查命令行参数,获取环境名称。
# 示例:./build.sh dev 或 ./build.sh prod
ENV=$1
# 如果没有指定环境,默认使用 dev
if [ -z "$ENV" ]; then
echo "错误:必须指定一个环境参数 (例如: dev, test, prod)。"
echo "使用方法: $0 <环境>"
exit 1
fi
echo "开始构建,目标环境: $ENV"
# 根据环境设置不同的构建命令
if [ "$ENV" == "dev" ]; then
# Dev 环境的构建命令
go build -ldflags="-X 'main.env=dev'" -o ./tmp/goalfymax-admin ./cmd/server
elif [ "$ENV" == "test" ]; then
# Test 环境的构建命令
go build -ldflags="-X 'main.env=test'" -o ./tmp/goalfymax-admin ./cmd/server
else
# Prod 环境的构建命令
GOOS=linux GOARCH=amd64 go build -tags prod -ldflags="-X 'main.env=prod'" -o goalfymax-admin ./cmd/server
fi
# 检查上一个命令go build的退出状态。
# $? 是一个特殊变量,表示上一个命令的退出状态码。
# 0 表示成功非0表示失败。
if [ $? -eq 0 ]; then
echo "构建成功!"
# 只有在生产环境下才重启服务
if [ "$ENV" == "prod" ]; then
# echo "暂时将本地构建的文件移动到远程服务器"
# scp ./goalfymax-admin root@44.247.156.94:/data/modules/goalfymax-admin
echo "正在重启服务..."
supervisorctl restart goalfymax-admin
echo "服务重启命令已发送。"
else
echo "非生产环境,将工作目录切换到 ./tmp 并启动程序..."
cd ./tmp
./goalfymax-admin --env $ENV
fi
else
echo "构建失败,服务未重启。"
exit 1
fi