如何使通过API调用另一个管道的Gitlab管道失败?

时间:2018-11-26 20:25:30

标签: continuous-integration gitlab gitlab-ci continuous-deployment gitlab-api

我有2个Gitlab存储库:

  1. 项目A
  2. 项目A的集成测试

如果集成测试失败,我想停止Project A的流水线/构建,但是即使集成测试失败,当前的Project A管道也可以通过。

我对项目A的Double定义了以下7个阶段:

Range.Value

倒数第二个阶段(.gitlab-ci.yml)通过将Gitlab API callstages: - build - test - publish - dev-deployment - staging-deployment - trigger-integration-tests - prod-deployment 一起使用来启动集成测试项目:

trigger-integration-tests

我尝试添加curl标志,但这没有帮助,所以我正在寻找更多的想法。

我找到了trigger-and-wait technique,但不确定是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:1)

根据对previous question的回答,您可以执行以下操作:

在主项目中,使用Python / Bash脚本:

  1. 触发集成测试管道(并捕获管道ID)
  2. 使用捕获的ID(可以是runningpendingfailedcanceled或{{1})轮询管道的status })
  3. 引发异常/错误,如果失败...

有关实现此功能的示例python脚本,请参见here