更新.gitlab-ci.yml文件

This commit is contained in:
skeleton 2024-10-15 09:53:29 +00:00
parent 72b1faa2ce
commit e6404f6dee
1 changed files with 42 additions and 32 deletions

View File

@ -1,11 +1,10 @@
stages: stages:
- build - build
- deploy - save
- push - sync
variables: variables:
ProjectPath: "mongo.games.com/game" ProjectPath: "mongo.games.com/game"
DeployPath: "mongo.games.com/deploy"
default: default:
tags: tags:
@ -33,47 +32,58 @@ build-job:
done < shell/programs.txt done < shell/programs.txt
deploy-job: deploy-job:
stage: deploy stage: save
script: script:
# 拉取
- echo "拉取deploy"
- cd $GOPATH/src/$DeployPath
- git checkout $CI_COMMIT_REF_NAME
- git pull
# 拷贝data目录
- echo '拷贝data目录'
- cd $GOPATH/src/$ProjectPath - cd $GOPATH/src/$ProjectPath
- cp -rfvp data/* $GOPATH/src/$DeployPath/data # 拷贝文件
- echo '拷贝文件'
- mkdir -p ./temp
- mkdir -p ./temp/data
- cp -rfp ./data/* ./temp/data
# 删除自定义配置 # 删除自定义配置
- echo '删除自定义配置' - echo '删除自定义配置'
- | - |
while IFS= read -r line while IFS= read -r line
do do
echo "删除 $line 配置" echo "删除 $line 配置"
rm $GOPATH/src/$DeployPath/data/$line rm ./temp/data/$line
done < shell/exclude.txt done < ./shell/exclude.txt
# 拷贝可执行程序 # 拷贝可执行程序
- echo '拷贝可执行程序' - echo '拷贝可执行程序'
- | - |
while IFS= read -r line while IFS= read -r line
do do
echo "拷贝 $line" echo "拷贝 $line"
cp -rf $line/$line $GOPATH/src/$DeployPath/ mv ./$line/$line ./temp/$line
echo "删除 $line" done < ./shell/programs.txt
rm -rf $line/$line
done < shell/programs.txt
push_job: push_job:
stage: push stage: sync
script: script:
# 提交代码 - cd $GOPATH/src/$ProjectPath
- echo '提交代码' - |
- cd $GOPATH/src/$DeployPath if [ "$CI_COMMIT_BRANCH" == "develop" ]; then
- git config user.email "ci@example.com" # 设置提交者的 email SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY_DEVELOP"
- git config user.name "GitLab CI" # 设置提交者的名称 REMOTE_HOST="$REMOTE_HOST_DEVELOP"
- git add . REMOTE_USER="$REMOTE_USER_DEVELOP"
- git commit -m "auto commit pipelineId $CI_PIPELINE_ID" REMOTE_PATH="$REMOTE_PATH_DEVELOP"
- git push origin $CI_COMMIT_REF_NAME elif [ "$CI_COMMIT_BRANCH" == "release" ]; then
SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY_BETA"
REMOTE_HOST="$REMOTE_HOST_BETA"
REMOTE_USER="$REMOTE_USER_BETA"
REMOTE_PATH="$REMOTE_PATH_BETA"
else
echo "不支持的分支";
exit 1;
fi
- echo "Setting up SSH keys..."
# 设置 .ssh 目录并写入 SSH 私钥
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -H "$REMOTE_HOST" >> ~/.ssh/known_hosts
# 使用 rsync 将文件同步到远程服务器
- echo "Deploying to remote server using rsync..."
- rsync -avz --delete build/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH