1

ビルド プロセスの一環として、データベースの変更をステージング DB にプッシュする EXE を作成しました。

このプロセスでエラーが発生することがあります。エラーが発生した場合は、ビルドを失敗させたいと考えています。EXE をビルド ステップとして追加して、失敗した場合 (例外としてキャッチできます)、ビルドに失敗して詳細を記録できるようにするにはどうすればよいですか (NUNit が失敗を表示する方法と同様)。

また、exeに他の詳細をログに記録させたいと思います(変更内容-ビルドが成功したか失敗したかなど)。これを行う方法に関するドキュメントはありますか?

私は MSBuild を使用しており、EXE を完全に制御できます (私が作成しました)。必要なものを出力するようにコーディングできます

4

2 に答える 2

4

メインのビルドステップに何を使用していますか?マヴェント?蟻?カスタムスクリプト?これを行うには多くの方法があり、OPで説明しなかった.exeの設計方法に大きく依存します。

最も簡単なのは、ドロップダウンから別のビルドステップを追加することです。[ Windowsバッチコマンドの実行]を選択します。そこで、バッチコマンドを記述して.exeを起動し、リターンコードをキャプチャします。

C:\Location_of_exe\your.exe
IF NOT "%ERRORLEVEL%" == "0" (
    ECHO "Your exe failed"
    EXIT /B 1
) ELSE (
    ECHO "Your exe passed"
)

.exeが通常のプログラムのように機能する場合、成功すると終了コード0が返されます。それ以外の場合は、ゼロ以外の終了コードが返されます。上記のステートメントは、ゼロ以外の終了コード(ある種の失敗を示す)を探し、検出された場合、エラーコード1自体でバッチを終了しますEXIT /B 1。これにより、ビルドステップが失敗したことがJenkinsに示され、ジョブが失敗したことがマークされます。

繰り返しになりますが、これは.exeが正しく、失敗時にゼロ以外の終了コードを返すことに大きく依存します。

「exeに他の詳細も記録してほしい」という限り、繰り返しになりますが、完全に.exeに依存します。

  • 障害ごとに異なる終了コードを返しますか?-もしそうなら、上記のコードはすべての可能性をキャプチャし、それに応じてログにエラーを表示するように簡単に変更できます

  • コンソールにさまざまなエラーを表示するのはコマンドライン.exeですか?その場合、バッチから呼び出すと、Jenkinsログにエラーが自動的に表示されます。.exeが正しい終了コードを返さない場合にも、このアプローチを使用できます。コマンドライン出力をキャプチャし、findstrそこで特定の出力行を検索して成功または失敗を判断するために使用できます

  • .exeがGUIアプリケーションであり、正しい終了コードを生成しない場合は、成功したか失敗したか(および何が失敗したか)を判断する方法がありません。

あなたがそれがどれであるかを特定したら、私はこの答えを更新します。

于 2012-11-28T14:40:46.540 に答える
0

これは私が考えることができる簡単なものです:

  1. ビルド プロセスを 2 つのジョブに分割します - A. Upto Exe。B. Post Exe
  2. ジョブ A で、Add post build stepジョブ B を実行する (A が成功したかどうか)
  3. B の構成では、Jenkins 環境変数を使用して出力をキャッチするスクリプトを記述します。チェックアウト<yourjenkinsurl>/env-vars.html/

しかしExe、exeはバイナリであり、これを達成するためにexeを実際に変更することはできないため、それは本当にBATのような実行可能ファイルですかI would also like the exe to log some other details? 実行可能ファイルのソース コードを変更して、手順 3 の変数を取得し、何かを行う必要があります。

于 2012-11-28T04:43:10.903 に答える