更新.gitlab-ci.yml文件
This commit is contained in:
parent
72b1faa2ce
commit
e6404f6dee
|
@ -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
|
Loading…
Reference in New Issue