From 6e6b1fa5d27fde950a08c0e01ef54b24f5266ceb Mon Sep 17 00:00:00 2001 From: liuxiaobo <1224730913@qq.com> Date: Thu, 29 May 2025 22:12:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 29 --------------- go.mod | 1 + go.sum | 2 ++ server/build.sh | 84 +++++++++++++++++++++++++++++++++++++++++++ test/build.sh | 94 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 181 insertions(+), 29 deletions(-) delete mode 100644 build.sh create mode 100644 server/build.sh create mode 100644 test/build.sh diff --git a/build.sh b/build.sh deleted file mode 100644 index 4dfd03a..0000000 --- a/build.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# 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 - -cd server -# Build truco -cd ../server/gate -go build -ldflags "-X main.GitBranch=$GIT_BRANCH -X main.GitCommit=$GIT_COMMIT_HASH -X main.BuildDate=$BUILD_DATE" -o ../../bin/gate - -# Build cacheta -#cd ../cacheta -#go build -ldflags "-X main.GitBranch=$GIT_BRANCH -X main.GitCommit=$GIT_COMMIT_HASH -X main.BuildDate=$BUILD_DATE" -o ../../bin/cacheta \ No newline at end of file diff --git a/go.mod b/go.mod index dc49202..f50db9b 100644 --- a/go.mod +++ b/go.mod @@ -28,6 +28,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/klauspost/compress v1.18.0 // indirect diff --git a/go.sum b/go.sum index 0666749..766598d 100644 --- a/go.sum +++ b/go.sum @@ -40,6 +40,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= diff --git a/server/build.sh b/server/build.sh new file mode 100644 index 0000000..8e43fe6 --- /dev/null +++ b/server/build.sh @@ -0,0 +1,84 @@ +#!/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 + + + diff --git a/test/build.sh b/test/build.sh new file mode 100644 index 0000000..333c836 --- /dev/null +++ b/test/build.sh @@ -0,0 +1,94 @@ +#!/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" + +# 传输文件到远程主机 +# 通过expect自动化密码输入 +expect -c " +spawn scp -o StrictHostKeyChecking=no \"bin/$FILE\" \"$Username@$Host:$RemotePath\" +expect \"password:\" +send \"$Password\r\" +expect eof +" + +if [ $? -eq 0 ]; then + echo "文件上传成功" +else + echo "文件上传失败" + exit 1 +fi + +# 传输文件到远程主机 +# 通过expect自动化密码输入 +expect -c " +spawn ssh -o StrictHostKeyChecking=no $Username@$Host \"bash $RemotePath\" +expect \"password:\" +send \"$Password\r\" +expect eof +" + +if [ $? -eq 0 ]; then + echo "远程脚本执行成功" +else + echo "远程脚本执行失败" + exit 1 +fi + + +