我们正在将动态部署添加到测试环境中,在该环境中每个合并请求都有其自己的url,以便能够为非开发人员手动进行前端测试。

这些实例通过docker-compose和GitLab CI/CD进行了部署,效果很好。

现在,合并请求合并后,我现在想自动关闭这些实例。

到目前为止,我还有额外的步骤可以手动关闭测试实例:

deploy-dynamic-down:
  tags:
    - docker
  stage: deploy-dynamic
  script:
   - docker-compose down
  when: manual

这很好用,但是需要一个手动步骤,几乎肯定会不时地将其遗忘,这需要我们时不时地清理转轮。

因此,我的问题是:能否仅在合并请求被合并时触发此管道步骤才能运行?

我不能仅将此管道限制为某些分支(例如masterdevelop),因为我们并不总是创建仅对这些分支的合并请求。我不知道合并请求将预先定位到哪个分支。

最佳答案

您可以使用Gitlab Environments来实现。

您可以配置为每个测试环境创建的dynamic gitlab environment

您可以将testing environment is stopped设置为在执行ojit_a时执行 deploy-dynamic-down 步骤。

这里的关键部分是删除源分支后,环境将自动停止。

工作流程:

  • 创建功能分支
  • 部署测试环境
  • 创建合并请求(在接受合并请求时,选中删除源分支。复选框)您也可以在合并请求时选中删除源分支
  • 当合并请求被接受时,feature分支将被删除,并且相应的gitlab环境将被停止。这将触发 deploy-dynamic-down 步骤。
  • 关于docker - 合并请求合并后自动运行管道清理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57686778/

    10-16 09:46