コマンドを複数回実行し、障害レポートをトリガーします。

コマンドを複数回実行し、障害レポートをトリガーします。

私のプロジェクトで "make"コマンドを100回実行しようとしています。しかし、当然のことながら結果を監視するわけではありませんが、ビルドが失敗した場合を知りたいです。

ビルドが失敗したときに通知、電子メール、またはレポートをトリガーするにはどうすればよいですか?

「make」を100回実行するためにこれを行いました。

    for run in {1..100}
    do
    make
    done

答え1

失敗するたびに何が起こりたいのかを電話することがmakeできます。

make || mail ...

または、失敗回数にのみ興味がある場合は、make連想配列に終了ステータスを記録します。

#! /bin/bash
declare -A exits

for run in {1..100} ; do
    make
    (( exits[$?]++ ))
done

echo Code Number
for code in "${!exits[@]}" ; do
    echo $code ${exits[$code]}
done

答え2

次のスクリプトは、成功または失敗を通知できます。 mail_notificationなどを簡単に実装できますか?

おそらくこの概念を見てください。継続的な統合より強力なソリューションのため。

#!/usr/bin/env bash

echo_notification() {
  echo "$(date +%Y%m%d:%H:%m:%S) : compilation failed"
}

no_notification() {
  true
}

for run in {1..100} ; do
  make && no_notification || echo_notification 
done

最初の失敗時にのみ通知を受け取るには、set -ebashのシェルスクリプトで失敗終了を使用できます。

関連情報