Testing makefile测试失败后Gitlab CI runner挂起

Testing makefile测试失败后Gitlab CI runner挂起,testing,makefile,diff,gitlab,gitlab-ci,Testing,Makefile,Diff,Gitlab,Gitlab Ci,我正在使用Gitlab CI进行构建测试。我有一个非常简单的测试,它将测试安装/构建的输出与已知的输出进行比较。我把测试放在一个生成文件中 Makefile条目如下所示: test:clean make install DESTDIR=$(TEST_DIR) $(TEST_DIR)/path/to/executable > $(TEST_DIR)/tmp.out diff test/test.result $(TEST_DIR)/tmp.out 当差异通过时,返回

我正在使用Gitlab CI进行构建测试。我有一个非常简单的测试,它将测试安装/构建的输出与已知的输出进行比较。我把测试放在一个生成文件中

Makefile条目如下所示:

test:clean
    make install DESTDIR=$(TEST_DIR)
    $(TEST_DIR)/path/to/executable > $(TEST_DIR)/tmp.out
    diff test/test.result $(TEST_DIR)/tmp.out
当差异通过时,返回退出代码0,如果差异显示文件中存在差异,则返回退出代码1

我所尝试的:

  • 从任何shell运行
    maketest
    都会运行测试并退出,而不管
    diff
    结果如何
  • 从shell运行
    make test
    ,作为
    gitlab\u ci\u runner
    运行测试并存在,而不管
    diff
    结果如何
  • 从Gitlab CI运行时,
    diff
    exit状态为0,生成返回成功
  • 问题是:

    • 当在Gitlab CI中运行并且退出状态为非0时,构建挂起
    • 构建屏幕上的输出是差异的输出,最后一行是预期的错误:
      make:**[test]错误1
    • 在此之后,循环符号保持启用,运行程序不会因构建失败而退出
    有什么想法吗?我认为这可能与Makefiles有关,但是如果Make在任何其他测试中以错误1退出,Gitlab CI将以失败状态退出。我只能看到它发生在diff的输出上


    谢谢

    也将此发布到GitLab邮件列表中