GNU/Linux >> Linux の 問題 >  >> Linux

シェルの実行が失敗した場合にジェンキンスのビルドを失敗させない

コマンド時にそれ以上の実行を停止するには 失敗:

command || exit 0

コマンド時に実行を継続するには 失敗:

command || true


Jenkins は /bin/sh -xe を使用してシェル ビルド ステップを実行しています デフォルトで。 -x 実行されたすべてのコマンドを出力することを意味します。 -e スクリプト内のコマンドのいずれかが失敗した場合、失敗して終了することを意味します。

あなたのケースで起こったことは、あなたのgitコマンドが1で終了したことであり、デフォルトの -e のために param を指定すると、シェルは 0 以外の終了コードを取得し、残りのスクリプトを無視して、ステップを失敗としてマークします。ビルドステップのスクリプトをここに投稿していただければ、これを確認できます。

その場合は、 #!/bin/sh を入れてみてください スクリプトがオプションなしで実行されるようにします。または set +e を実行します または、この動作をオーバーライドするために、ビルド ステップの上に同様のものを追加します。

編集:もう 1 つの注意点は、最後のコマンド シェル スクリプトで 0 以外のコードを返す 、このセットアップでもビルドステップ全体が失敗としてマークされます。この場合、単純に true を置くことができます

関連する別の質問


プッシュするものが何もない場合、git は終了ステータス 1 を返します。シェル ビルド ステップの実行は、それぞれ失敗としてマークされます。 OR ステートメント || を使用できます。 (二重パイプ).

git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'

つまり、最初に失敗した場合は 2 番目の引数を実行します (終了ステータス> 0 が返されます)。 2 番目のコマンドは常に 0 を返します。プッシュするものが何もない場合 (終了ステータス 1 -> 2 番目のコマンドを実行)、echo は 0 を返し、ビルド ステップが続行されます。

ビルドを不安定としてマークするには、ビルド後のステップ Jenkins Text Finder を使用できます。コンソール出力を調べて、パターン (エコー) を照合し、ビルドを不安定としてマークすることができます。


Linux
  1. Webページのクリックイベント時にシェルコマンドを実行しますか?

  2. ファイルが見つかった場所でコマンドを実行しますか?

  3. Linux での chsh コマンドの例

  1. 実際のシステム管理者はsudoを実行しません

  2. リモートアクティブターミナルでコマンドを実行しますか?

  3. laravelコントローラーから外部シェルコマンドを実行するには?

  1. 定義されたディレクトリ範囲でコマンドを実行しますか?

  2. 入力でNohupコマンドを実行しますか?

  3. バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法