如何在自动运行GitLab CI管道的情况下启用手动运行GitLab CI管道?

如何在自动运行GitLab CI管道的情况下启用手动运行GitLab CI管道?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我希望在每次合并请求时都有一个需要运行的管道。我还希望能够手动运行该管道,以便能够预测合并问题 但是,如果我将我的工作指定为 only: - merge_requests 当尝试手动运行管道时,我会遇到一个问题 管道无法运行。此管道没有阶段/作业 如果改用工作流 include: - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml' 我得到了一个不同但同等的问候 管道无法运行。由工作流规则筛选出的管道 因此,我如何设

我希望在每次合并请求时都有一个需要运行的管道。我还希望能够手动运行该管道,以便能够预测合并问题

但是,如果我将我的工作指定为

only:
  - merge_requests
当尝试手动运行管道时,我会遇到一个问题

管道无法运行。此管道没有阶段/作业

如果改用工作流

include:
  - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
我得到了一个不同但同等的问候

管道无法运行。由工作流规则筛选出的管道


因此,我如何设置合并请求所需的管道,但也可以由用户在其功能分支上手动运行?

通常,我建议使用较新的规则语句,而不是仅使用,这样如果您只想在合并请求中手动运行,我会执行以下操作:

CI\u PIPELINE\u SOURCE
是Gitlab CI中的默认变量,它应该对您的用例有用。

您应该使用它,而不是因为以后将不推荐使用后者

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_PIPELINE_SOURCE == "web"'
但是,您可以使用并定义整个管道的创建时间,而不是配置每个作业应该运行的时间

在您的示例中,如果是合并请求,并且管道是在没有推送的情况下手动触发的,则以下
工作流
将创建管道

如需进一步参考,您可以查看
CI\u PIPELINE\u SOURCE
的可能版本,以备将来更改

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_PIPELINE_SOURCE == "web"'