3

ビルド テストに 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 が返されます。

私が試したこと:

  1. make test任意のシェルから実行すると、結果に関係なく、テストが実行されて終了しdiffます
  2. make testシェルから 実行gitlab_ci_runnerすると、テストが実行され、diff結果に関係なく存在します
  3. Gitlab-CI から実行され、diff終了ステータスが 0 の場合、ビルドは成功を返します

問題:

  • Gitlab-CI で実行し、diff終了ステータスが 0 以外の場合、ビルドがハングします。
  • ビルド画面の出力は差分の出力であり、最後の行は予想されるエラーです。 make: *** [test] Error 1
  • その後、サイクル シンボルが点灯し続け、ランナーはビルドの失敗で終了しません。

何か案は?Makefile のせいかなと思ったのですが、他のテストで Make が Error 1 で終了すると、Gitlab-CI は Fail ステータスで終了します。差分の出力でのみ発生していることがわかります。

ありがとう!

4

1 に答える 1