我正在使用gitlab CI为我的网站设置部署过程。
我有一个production
网站和一个部署staging
的子域。
我们之间说我有不同的分支:掌握和释放。我有一个配置文件.yaml,以便:
如果我推送master,我在production
上进行了部署(带有手动选项),如果我推送我的分支版本,我就会在staging
上进行自动部署。
git push origin master
部署到生产(通过手动验证),
git push origin release
部署到分段。推送的任何其他分支都不会部署。
我们有几个人在工作,有时,我们希望能够在指定标签(例如feature
)时在staging
上部署另一个分支(例如specifictag
) git push:
git tag specifictag
git push origin feature --tags
这对我有用,因为有时一些开发人员想在合并到发布之前测试他们的代码,而我们不想创建第三个环境。当然,每当我们推动任何一个分支时,我们都不想部署。
stages:
- staging
- production
test-deployment:
stage: staging
script:
- [...]
only:
- release
tags:
- extranetserver
prod-deployment:
stage: production
script:
- [...]
only:
- master
tags:
- extranetserver
when: manual
有没有人知道如何在推送特定标签时使用标记作为强制部署的方法? 谢谢!
答案 0 :(得分:7)
您可以使用正则表达式,例如
test-deployment:
only:
- /^staging-/
标记您的提交,以" staging - "开头。当你推动时,工作应该运行。