如何在自动运行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"'