基于 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-" 开始。当你推送时,作业应该 运行.