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

pro*_*ion 5 git deployment gitlab gitlab-ci

我正在使用gitlab CI为我的网站设置部署过程。我有一个production网站和一个带有staging部署的子域。

假设我在其中有不同的分支:master和release。我有一个配置为.yaml的文件,其配置如下:如果按下master,则将在production(具有手动选项)上进行部署;如果按下分支版本,则将在进行自动部署staging

git push origin master 
Run Code Online (Sandbox Code Playgroud)

部署到生产中(带有手动验证),

git push origin release 
Run Code Online (Sandbox Code Playgroud)

部署到分期。并且任何其他推送的分支都不会部署。

我们有几个人要工作,有时,我们希望能够在git push featurestaging指定标签(例如specifictag)时部署另一个分支(例如):

git tag specifictag    
git push origin feature --tags
Run Code Online (Sandbox Code Playgroud)

这对我很有用,因为有时某些开发人员希望在合并发布之前测试其代码,而我们不想创建第三个环境。当然,我们不想每次推送任何分支时都进行部署。

stages:

  - staging

  - production

test-deployment:

  stage: staging

  script:

    - [...]

  only:

    - release

  tags:

    - extranetserver

prod-deployment:

  stage: production

  script:

    - [...]

  only:

    - master

  tags:

    - extranetserver

  when: manual
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使用标签作为推送特定标签时强制部署的方式?谢谢!

小智 10

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

test-deployment:
    only:
        - /^staging-/
Run Code Online (Sandbox Code Playgroud)

并标记您的提交,从“ staging-”开始。当您按下时,作业应运行。