共计 1336 个字符,预计需要花费 4 分钟才能阅读完成。
概述
这是一份 GitLab CI/CD 流水线的配置示例,如果你在开发中有这样的需求,如将提交的代码自动更新到测试服务器,或将打了标签 / 发布版本的代码自动更新到正式服务器 (可能是演示环境),那么可以参考该文章的方式实现。
准备工作
- 确保你的 runner 已经存在
如上图中表示的是存在 4 个 runner,每个 runner 都存在一个标签,这个标签在后续配置流水线时可以通过设置标签实现指定哪一个 runner 运行。
- 确保你的项目根目录下存在一个
.gitlab-ci.yml
文件,这是 GitLab CI/CD 的配置文件
.gitlab-ci.yml 文件配置示例
# usermod -aG docker gitlab-runner
# 定义阶段
stages:
# 发布
- deploy
# 定义变量
variables:
# docker 容器名称
DOCKER_CONTAINER_NAME: api-gateway
# 测试站项目目录
TEST_DIR: /web/api-gateway
# 正式站项目根
PRODUCT_DIR: /web/api-gateway
# 发布测试版
deploy_test:
stage: deploy
script:
- echo "============== 开始部署测试版 ==============="
# 通过脚本实现部署,脚本内容参考后文
- chmod a+x ./scripts/deploy_test.sh
- ./scripts/deploy_test.sh
- echo "============== 结束部署测试版 ==============="
only:
# 这里的 dev 是开发分支,根据情况调整
- dev
tags:
# 这里的是 runner 的标签,表示使用哪个 runner 执行
- deploy-runner
# 发布正式版
deploy_production:
stage: deploy
script:
- echo "============== 开始部署正式版 ==============="
# 通过脚本实现部署,脚本内容参考后文
- chmod a+x ./scripts/deploy_production.sh
- ./scripts/deploy_production.sh
- echo "============== 结束部署正式版 ==============="
only:
# 这里的 tags 表示当创建了新的 tag 标签时运行
- tags
tags:
# 这里的是 runner 的标签,表示使用哪个 runner 执行
- deploy-runner
部署脚本参考示例
测试站脚本参考
#!/usr/bin/env bash
# 使用 ssh 命令登录服务器
ssh -p 22 -tt root@192.168.0.2
正式站脚本参考
#!/usr/bin/env bash
ssh -tt root@192.168.0.3
其他说明
- 你需要先在测试站或则正式站拉取 git 项目到对应的目录,这样做是防止需要输入 git 的账号密码,同时应该配置将 git 的账号密码储存起来,避免重复输入。可使用如下命令实现
git config --global credential.helper store
# 推荐阅读
说明用于代码托管在 gitlab,提交后通过 gitlab-ru…
标签:git
gitlab
文章来源: GitLab CI/CD 流水线配置案例
正文完