3

我正在使用 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

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

我试过的:

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

问题:

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

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

谢谢!

4

1 回答 1

0

也将此发布到 GitLab 邮件列表https://groups.google.com/d/msgid/gitlabhq/77e82813-b98e-4abe-9755-f39e07043384%40googlegroups.com?utm_medium=email&utm_source=footer

于 2014-07-03T07:33:08.220 回答