基于gitlab CI中的git标签的条件自动部署

时间:2017-03-31 12:26:32

标签: git deployment gitlab gitlab-ci

我正在使用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

有没有人知道如何在推送特定标签时使用标记作为强制部署的方法? 谢谢!

1 个答案:

答案 0 :(得分:7)

您可以使用正则表达式,例如

test-deployment:
    only:
        - /^staging-/

标记您的提交,以" staging - "开头。当你推动时,工作应该运行。