我正在使用 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。
我试过的:
- 无论结果如何,从任何 shell运行
make test
都会运行测试并退出diff
make test
从 shell 运行作为 运行gitlab_ci_runner
测试并且无论diff
结果如何都存在- 从 Gitlab-CI 运行时,
diff
退出状态为 0,构建返回成功
问题:
- 在 Gitlab-CI 中运行且
diff
退出状态为非 0 时,构建挂起。 - 构建屏幕上的输出是 diff 的输出,最后一行是预期的错误:
make: *** [test] Error 1
- 之后,循环符号保持亮起,运行器不会因构建失败而退出。
有任何想法吗?我认为这可能与 Makefiles 有关,但如果 Make 以错误 1 退出以进行任何其他测试,Gitlab-CI 将以失败状态退出。我只能看到它发生在差异的输出上。
谢谢!