gitlab - 如何在自动运行的情况下手动运行 GitLab CI 管道?
问题描述
我想要一个需要在每个合并请求时运行的管道。我还希望能够手动运行该管道,以便可以预见合并问题。
但是,如果我将我的工作指定为
only:
- merge_requests
当尝试手动运行管道时,我收到了一个
管道无法运行。此管道没有阶段/作业。
如果我改用工作流程,
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
迎接我的是一个不同但相当的人
管道无法运行。被工作流规则过滤掉的管道。
那么如何设置合并请求所需的管道,但也可以由用户在其功能分支上手动运行?
解决方案
您应该使用规则而不是only/except,因为后者将在未来被弃用。
但是,您可以使用工作流并定义整个管道的创建时间,而不是配置每个作业应该运行的时间。
workflow
在您的示例中,如果它是一个合并请求并且如果管道是在没有推送的情况下手动触发的,则以下将创建一个管道。
如需进一步参考,您可以查看可能的值,以便CI_PIPELINE_SOURCE
将来更改它。
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_PIPELINE_SOURCE == "web"'
推荐阅读
- android - Android DrawerLayout - 带有 Gravity.Start 的 openDrawer 创建一个 lint 错误“必须是一个或多个...”
- shopify - 为什么我仍然看到我在我的 shopify 项目中删除的字体文件的 404 错误?
- javascript - 是否在 `style` 标记中使用 `lang` 属性允许为 VueJS 标记 css 预处理器语言?如果我们使用它有什么缺点吗?
- python - Python sendto()未执行
- c++ - 按下 SDL 操纵杆按钮 / C++
- jquery - JQuery:如何向下滚动到刚刚使用 .show() 显示的元素
- azure - 使用 ASE v1 进行 Azure API 管理
- docker - Zookeeper 无法创建新的 znode
- asp.net-core-2.1 - 使用主 Web 应用程序的 dbcontext 的 Razor 类库
- c++ - 使用运算符 [] 在 std::vector<> 上引用过去最后一个元素的问题