gitlab-ci - gitlab-ci - 具有不同分支的多个阶段的作业
问题描述
跟随塞纳里奥。我有 1 个生产分支和 2 个开发分支,应该使用不同的环境变量进行部署
- prod
- dev1
- dev2
我想将部署分为 2 个不同的阶段
- build
- deploy
如何配置 gitlab-ci 文件,存储每个分支的脚本和阶段?
我已经尝试了几件事,但没有得到有效的工作 ci。
stages:
- build
- deploy
variables:
IMAGE: my_image
# Production
prod:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=production .
only:
- prod
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some production relevated env vars"
only:
- prod
# Development 1
dev1:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=staging .
only:
- dev1
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some dev1 relevated env vars"
only:
- dev1
# Development 2
dev2:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=staging .
only:
- dev2
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some dev2 relevated env vars"
only:
- dev2
是否有可能以这种方式拆分工作?
解决方案
我找到了解决方案。只需为每个环境添加一个作业。
stages:
- build
- deploy
variables:
IMAGE: my_image
# Production
prod-build:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=production .
only:
- prod
prod-deploy:
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some production relevated env vars"
only:
- prod
# Development 1
dev1-build:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=staging .
only:
- dev1
dev2-deploy:
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some dev1 relevated env vars"
only:
- dev1
# Development 2
dev2-build:
stage: build
script:
- docker build -t $IMAGE --build-arg RAILS_ENV=staging .
only:
- dev2
dev2-deploy:
stage: deploy
script:
- docker push $IMAGE
- docker run -e "some dev2 relevated env vars"
only:
- dev2
推荐阅读
- mysql - 使用 concat 更改格式数据并替换 mysql
- javascript - 无错误或运行时错误的多个 DOM 遍历
- html - 普通文本字段可行,但一旦我添加表单控件,它就会停止工作
- python-multithreading - 多次启动线程与循环flask-socketIO
- mysql - 不允许在(子)分区函数中使用 MySQL 常量、随机或时区相关的表达式
- express - 如何更改 Electron 中的响应发送文件路径
- flutter - 有没有办法在 Flutter 中使图像文件的白色背景完全透明?
- python - 检查当前时间是否在当地时间下午 6 点到早上 6 点之间
- sql-server - 合并复制列级跟踪配置未按预期工作
- python - 在 Python 中同时分配索引不同的列表元素