stages: - build - deploy - push variables: ProjectPath: "mongo.games.com/game" DeployPath: "mongo.games.com/deploy" default: tags: - gitlab build-job: stage: build script: # 拷贝到GOPATH - echo '拷贝到GOPATH' - cp -rfp ./* $GOPATH/src/$ProjectPath # 进入项目目录 - cd $GOPATH/src/$ProjectPath # 编译 - echo '编译' - go env -w GO111MODULE=off - | while IFS= read -r line do cd $line echo "编译 $line" go build -v cd .. done < shell/programs.txt deploy-job: stage: deploy script: # 拷贝data目录 - echo '拷贝data目录' - cd $GOPATH/src/$ProjectPath - cp -rfvp data/* $GOPATH/src/$DeployPath/data # 删除自定义配置 - echo '删除自定义配置' - | while IFS= read -r line do echo "删除 $line 配置" rm $GOPATH/src/$DeployPath/data/$line done < shell/exclude.txt # 拷贝可执行程序 - echo '拷贝可执行程序' - | while IFS= read -r line do echo "拷贝 $line" cp -rf $line/$line $GOPATH/src/$DeployPath/ echo "删除 $line" rm -rf $line/$line done < shell/programs.txt push_job: stage: push script: # 提交代码 - echo '提交代码' - cd $GOPATH/src/$DeployPath - git checkout $CI_COMMIT_REF_NAME - git add . - git commit -m "auto commit pipelineId\:$CI_PIPELINE_ID" - git push origin develop