game/server/build.sh
2025-05-29 22:12:52 +08:00

85 lines
1.6 KiB
Bash

#!/bin/bash
# 定义文件名、用户名和远程路径
FILE=$1
# Get Git commit hash
GIT_COMMIT_HASH=$(git rev-parse HEAD)
# Get Git branch name
GIT_BRANCH=$(git branch --show-current)
# Get build date in YYYYMMDDHHMMSS format
BUILD_DATE=$(date +"%Y%m%d%H%M%S")
# Output linker flags
echo "-X main.GitCommitHash=$GIT_COMMIT_HASH"
echo "-X main.GitBranch=$GIT_BRANCH"
echo "-X main.BuildDate=$BUILD_DATE"
# Set Go environment variables
export GOARCH=amd64
export GOOS=linux
export CGO_ENABLED=0
#sh build.sh chat
# 检查是否提供了两个参数
if [ "$#" -ne 1 ]; then
echo "Usage: $0 {login}"
exit 1
fi
# 检查并创建 bin 目录
if [ ! -d "bin" ]; then
mkdir -p bin
fi
#构建项目的名字
BUILD_DIR=$FILE
# 删除旧的编译文件
rm -f bin/$FILE
go build -ldflags "-X main.GitBranch=$GIT_BRANCH -X main.GitCommit=$GIT_COMMIT_HASH -X main.BuildDate=$BUILD_DATE" -o bin/$FILE $BUILD_DIR/main.go
# 检查编译是否成功
if [ ! -f "bin/$FILE" ]; then
echo "build failed."
exit 1
else
echo "build success."
fi
Host="114.132.124.145"
Username="ubuntu"
Password="@qq20160101"
RemotePath="/home/ubuntu/game"
REMOTE_SCRIPT_PATH="/home/ubuntu/game"
LocalFile=bin/$FILE
# 传输文件到远程主机
pscp -batch -pw "$Password" "$LocalFile" "$Username@$Host:$RemotePath"
if [ $? -eq 0 ]; then
echo "文件上传成功"
else
echo "文件上传失败"
exit 1
fi
# 远程执行脚本
plink -ssh -batch -pw "$Password" "$Username@$Host" "bash $RemotePath"
if [ $? -eq 0 ]; then
echo "远程脚本执行成功"
else
echo "远程脚本执行失败"
exit 1
fi