创建手动GitLab CI作业以在最终合并之前运行

时间:2019-02-01 16:45:43

标签: gitlab gitlab-ci

我在GitLab CI中有一份工作,我想将其设置为在以下条件下运行。

  1. 这是必须由用户触发的手动作业。
  2. 它必须限制MR的完成,因为用户必须先运行它,然后才能允许MR通过。

我正在寻找这种类型的设置的原因是该工作非常漫长,并且占用了某些有限的资源。因此,我不希望作业在每次提交时都运行,而只是在完成MR之前的最后一步。可以这样设置吗?

我正在使用GitLab社区版11.7.0。

2 个答案:

答案 0 :(得分:0)

是的! GitLab 11.6引入了pipelines for merge requests。对于您所描述的,我建议创建一个仅用于合并请求的作业,不允许出现故障。

gate:
  script: "true"
  only:
    - merge_requests
  allow_failure: false

您需要填写实际的脚本,工作阶段以及所有其他详细信息。

答案 1 :(得分:0)

我认为目前无法在GitLab中实现。他们正在解决一个被称为“预期合并管道”的问题,听起来像您在搜索什么:

https://gitlab.com/gitlab-org/gitlab-ee/issues/7380

他们描述的工作流程是:

  • 用户按下合并
  • 在合并后的代码库上启动管道
  • 仅在不存在合并冲突,所有作业成功且目标分支尚未前进的情况下进行合并。

作为解决方法,您可以使用“ when:manual”:

https://docs.gitlab.com/ee/ci/yaml/#whenmanual

GitLab CI的其他功能只能手动触发管道,然后通常需要用户粘贴链接到成功的管道,然后才允许他们按下合并按钮。