基于 git 实验室 CI 中的 git 标记的有条件自动部署
Conditional auto-deploy based on git tag in gitlab CI
我正在使用 gitlab CI 为我的网站设置部署过程。
我有一个 production
网站和一个部署了 staging
的子域。
假设我有不同的分支:master 和 release。我有一个文件 .yaml 配置如下:
如果我推送 master,我会在 production
上进行部署(使用手动选项),如果我推送我的分支版本,我会在 staging
上进行自动部署。
git push origin master
部署到生产环境(手动验证),
git push origin release
部署到暂存区。并且任何其他被推送的分支都不会部署。
我们是几个人一起工作,有时,我们希望在指定标签时能够在 staging
上部署另一个分支(例如 feature
)(例如 specifictag
) 在 git 推送上:
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
有没有人知道在推送特定标签时如何使用标签作为强制部署的方法?
谢谢!
你可以使用正则表达式,比如
test-deployment:
only:
- /^staging-/
并标记您的提交,从 "staging-" 开始。当你推送时,作业应该 运行.
我正在使用 gitlab CI 为我的网站设置部署过程。
我有一个 production
网站和一个部署了 staging
的子域。
假设我有不同的分支:master 和 release。我有一个文件 .yaml 配置如下:
如果我推送 master,我会在 production
上进行部署(使用手动选项),如果我推送我的分支版本,我会在 staging
上进行自动部署。
git push origin master
部署到生产环境(手动验证),
git push origin release
部署到暂存区。并且任何其他被推送的分支都不会部署。
我们是几个人一起工作,有时,我们希望在指定标签时能够在 staging
上部署另一个分支(例如 feature
)(例如 specifictag
) 在 git 推送上:
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
有没有人知道在推送特定标签时如何使用标签作为强制部署的方法? 谢谢!
你可以使用正则表达式,比如
test-deployment:
only:
- /^staging-/
并标记您的提交,从 "staging-" 开始。当你推送时,作业应该 运行.