合并请求合并后自动运行管道清理

kol*_*nte 7 continuous-integration continuous-deployment docker gitlab-ci

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

这些实例docker-compose与GitLab CI / CD 一起部署,效果很好。

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

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

deploy-dynamic-down:
  tags:
    - docker
  stage: deploy-dynamic
  script:
   - docker-compose down
  when: manual
Run Code Online (Sandbox Code Playgroud)

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

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

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

cec*_*ami 3

您可以使用Gitlab 环境来实现此目的。

您可以配置为每个测试环境创建的动态 gitlab 环境。

您可以将deploy-dynamic-down步骤设置为在测试环境停止时执行。

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

工作流程:

  1. 创建功能分支
  2. 部署测试环境
  3. 创建合并请求(选中接受合并请求时删除源分支。复选框)您还可以在合并合并请求时选中删除源分支。
  4. 当合并请求被接受时,该功能分支将被删除,并且相应的gitlab环境将被停止。这将触发部署动态向下步骤。