makefile测试失败后,Gitlab-CI运行器挂起

时间:2014-06-25 14:10:01

标签: testing makefile diff gitlab gitlab-ci

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

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

当diff通过时,返回退出代码0,如果diff显示文件中的差异,则返回退出代码1。

我尝试过的事情:

  1. 从任何shell运行make test都会运行测试并退出,无论diff结果
  2. make test身份从shell运行gitlab_ci_runner运行测试并且无论diff结果
  3. 都存在
  4. 从Gitlab-CI运行时,diff退出状态为0,构建返回成功
  5. 问题:

    • 在Gitlab-CI中运行且diff退出状态为非0时,构建会挂起。
    • 构建屏幕上的输出是diff的输出,最后一行是预期的错误:make: *** [test] Error 1
    • 之后,循环符号一直亮着,跑步者不会因为构建失败而退出。

    有什么想法吗?我认为它可能与Makefile有关,但如果Make出口错误1进行任何其他测试,Gitlab-CI将以失败状态退出。我只能看到它发生在diff的输出上。

    谢谢!

相关问题