ビルド テストに 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 が返されます。
私が試したこと:
make test
任意のシェルから実行すると、結果に関係なく、テストが実行されて終了しdiff
ますmake test
シェルから 実行gitlab_ci_runner
すると、テストが実行され、diff
結果に関係なく存在します- Gitlab-CI から実行され、
diff
終了ステータスが 0 の場合、ビルドは成功を返します
問題:
- Gitlab-CI で実行し、
diff
終了ステータスが 0 以外の場合、ビルドがハングします。 - ビルド画面の出力は差分の出力であり、最後の行は予想されるエラーです。
make: *** [test] Error 1
- その後、サイクル シンボルが点灯し続け、ランナーはビルドの失敗で終了しません。
何か案は?Makefile のせいかなと思ったのですが、他のテストで Make が Error 1 で終了すると、Gitlab-CI は Fail ステータスで終了します。差分の出力でのみ発生していることがわかります。
ありがとう!