From b3a166c02283723dddde85d3764e8b2b6a7cabac Mon Sep 17 00:00:00 2001 From: skeleton Date: Fri, 27 Dec 2024 02:14:57 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0.gitlab-ci.yml=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e2f6f58..49774e1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,14 +2,13 @@ stages: - lock - build - save - - sync - unlock variables: - ProjectPath: "mongo.games.com/game" # 项目相对于GOPATH的路径 + GOPATH: "/home/gopath" + GoServerSrcPath: "mongo.games.com/goserver" # 项目相对于GOPATH/src的路径 BetaBinPath: "/home/game/" # beta环境部署路径 DevelopBinPath: "/home/game/" # develop环境部署路径 - GOPROXY: "https://goproxy.cn,direct" default: tags: @@ -26,12 +25,12 @@ lock_job: stage: lock script: - | - if [ -f /tmp/ci_lock ]; then - echo "流水线已在运行,等待..." + if [ -f /tmp/ci_lock/$CI_COMMIT_REF_NAME ]; then + echo "流水线($CI_COMMIT_REF_NAME)已在运行,等待..." exit 1 else - touch /tmp/ci_lock - echo "获得锁定,开始流水线。" + touch /tmp/ci_lock/$CI_COMMIT_REF_NAME + echo "获得锁定,开始流水线($CI_COMMIT_REF_NAME)。" fi build-job: @@ -42,19 +41,18 @@ build-job: script: - git checkout $CI_COMMIT_REF_NAME - git pull origin $CI_COMMIT_REF_NAME + + # 替换 go.mod 中的 ../goserver + - sed -i "s|mongo.games.com/goserver => .*|mongo.games.com/goserver => $GOPATH/src/$GoServerSrcPath|" go.mod + - if [ ! -z "$(git status --porcelain go.mod go.sum)" ]; then GOMODTIDY=1; fi - # 拷贝到GOPATH - - echo '拷贝到GOPATH' - - rsync -rvc --no-perms --delete ./* $GOPATH/src/$ProjectPath - # 进入项目目录 - - cd $GOPATH/src/$ProjectPath + # 编译 - echo '编译' - if [ "$GOMODTIDY" == 1 ]; then go mod tidy; - go mod download; fi - | while IFS= read -r line || [[ -n $line ]] @@ -71,7 +69,6 @@ save-job: - develop - release script: - - cd $GOPATH/src/$ProjectPath # 拷贝文件 - echo '拷贝文件' - rm -rf ./temp @@ -138,6 +135,6 @@ sync_job: unlock_job: stage: unlock script: - - rm -f /tmp/ci_lock - - echo "释放锁定,流水线结束。" + - rm -f /tmp/ci_lock/$CI_COMMIT_REF_NAME + - echo "释放锁定,流水线结束(/$CI_COMMIT_REF_NAME)。" when: always \ No newline at end of file From 6a0e1e5e90e721071564aaf60218397e5dd070a5 Mon Sep 17 00:00:00 2001 From: skeleton Date: Fri, 27 Dec 2024 02:16:40 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0.gitlab-ci.yml=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49774e1..d98641a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -92,45 +92,6 @@ save-job: mv ./$line/$line ./temp/$line done < ./programs.txt -sync_job: - stage: sync - only: - - develop - - release - script: - - cd $GOPATH/src/$ProjectPath - - if [ "$CI_COMMIT_BRANCH" == "develop" ]; then - SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY_DEVELOP"; - REMOTE_HOST="$REMOTE_HOST_DEVELOP"; - REMOTE_USER="$REMOTE_USER_DEVELOP"; - ServerName="develop"; - BinPath="$DevelopBinPath"; - elif [ "$CI_COMMIT_BRANCH" == "release" ]; then - SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY_BETA"; - REMOTE_HOST="$REMOTE_HOST_BETA"; - REMOTE_USER="$REMOTE_USER_BETA"; - ServerName="beta"; - BinPath="$BetaBinPath"; - else - echo "不支持的分支"; - exit 1; - fi - - # 设置 .ssh 目录并写入 SSH 私钥 - - echo "设置 SSH keys..." - - 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 "同步到服务器" - - echo "Deploying to remote server using rsync... $BinPath" - - rsync -rvz --delete ./temp/ $REMOTE_USER@$REMOTE_HOST:$BinPath - - # 触发部署 - - "curl -X POST --fail -F token=$SERVER_CI_TOKEN -F ref=release -F variables[ServerName]=$ServerName https://git.pogorockgames.com/api/v4/projects/31/trigger/pipeline" - # 解锁作业,释放锁定 unlock_job: stage: unlock From a5bed973a59468882171c009a7eff077a1b00eb4 Mon Sep 17 00:00:00 2001 From: skeleton Date: Fri, 27 Dec 2024 02:18:47 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0.gitlab-ci.yml=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d98641a..cdb4811 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,11 +25,11 @@ lock_job: stage: lock script: - | - if [ -f /tmp/ci_lock/$CI_COMMIT_REF_NAME ]; then + if [ -f /tmp/ci_lock_$CI_COMMIT_REF_NAME ]; then echo "流水线($CI_COMMIT_REF_NAME)已在运行,等待..." exit 1 else - touch /tmp/ci_lock/$CI_COMMIT_REF_NAME + touch /tmp/ci_lock_$CI_COMMIT_REF_NAME echo "获得锁定,开始流水线($CI_COMMIT_REF_NAME)。" fi @@ -96,6 +96,6 @@ save-job: unlock_job: stage: unlock script: - - rm -f /tmp/ci_lock/$CI_COMMIT_REF_NAME + - rm -f /tmp/ci_lock_$CI_COMMIT_REF_NAME - echo "释放锁定,流水线结束(/$CI_COMMIT_REF_NAME)。" when: always \ No newline at end of file