continuous-integration - 可以相互启动的多项目管道
问题描述
在 Gitlab-CI 上,我有两个项目可以一起工作。有时只更新项目 A,有时只更新 B,有时只更新 A+B(当发布链接时)。我想在每个项目上创建一个启动一个项目并仅在必要时触发另一个项目的管道。我使用了下游触发器,但我面临两种冲突的情况:
当我只在分支发布-* 上推送 A 时,我想在 B 上触发 master,反之亦然
当我推动 A 和 B 因为发布链接到两个项目时,它将触发管道 A 然后 B,然后 B 将触发 A,然后 A 将触发 B,并且永远如此。(我没有测试这个案例,但理论上会发生)
任何想法如何解决这种情况?
将chatops 与Slack 一起使用是一个可以考虑的解决方案。
解决方案
我只是通过CI_PIPELINE_SOURCE
在下游管道中玩弄找到了答案。如果 $CI_PIPELINE_SOURCE == "pipeline",不要执行这个任务。
推荐阅读
- sql - 从表中获取薪水最高的员工的第一行
- c# - 排序 ASP.NET CORE MVC 时如何保留过滤器数据
- c# - 如何将特定节点从xml导入treeview c#
- android - Pjsip Android:如何使用 PjCamera 类显示用户预览
- corda - Corda 枚举序列化和 PersistentState
- javascript - 如何查看用户是否已从 Javascript 应用程序中注销身份服务器
- gensim - Gensim 的 FastText KeyedVector 超出了词汇量
- grails - 如何解决同步方法中的连接关闭问题?
- wordpress - 是否可以过滤通过 WooCommerce REST API 可见的订单?
- dictionary - 如何在 Groovy 中的对象中使用变量作为键?