4

Jenkins を使用して、システムに多数のクライアント ライブラリを構築しており、それぞれが異なる言語をターゲットにしています。私の構成は、ライブラリをビルドおよび/またはテストする、言語ごとに 1 つずつ、多数の個別のビルド ステップで構成されています。

現在、システムの重大な変更により、最初のビルド ステップが失敗し、他のビルド ステップが実行されないため、非常に不便です。結果として生じるすべてのエラーを確認できるように、すべてのビルド手順を実行する必要があります。

代替案の 1 つは、以前のビルドが失敗した場合に後のビルド ステップを中止しないようにジェンキンスに指示する構成が存在することです。そのようなものは見つかりませんでしたが、あるかもしれません。

私が考えた別の方法は、各言語を個別のビルドとしてトリガーすることでしたが、ビルド後の手順でそれらをすべて結び付ける必要があり、その方法がわかりません。

そしてもちろん、私が見逃しているものがあるかもしれません。

上記のいずれかが私の問題を解決します。それで、私は何をすべきで、どのようにそれを行うのですか?

4

2 に答える 2

2

Multijob Plugin はあなたが探しているものです私はこのプラグインをよく使います。彼らのスクリーンショットを見てください - フェーズ (フェーズは複数のジョブを持つことができます) を成功としてマークする方法について 3 つのオプションを指定できます。

  • フェーズ ジョブのビルドが成功したとき
  • フェーズジョブのビルドが不安定だったとしても
  • フェーズ ジョブのビルドが失敗した場合でも-これが必要です

あなたの場合、「クライアント ライブラリ」ごとに 1 つのフェーズを持つマルチジョブ ジョブを作成できます。そして、それぞれの「クライアント ライブラリ」ジョブをフレーズに追加します。したがって、10 個の「クライアント ライブラリ」ジョブがある場合、この MutliJob には 10 個のフェーズ (それぞれに 1 つ) が存在することになります。また、「フェーズ ジョブのステータスが「完了 (常に続行)」の場合、「フェーズを成功としてマークする」を設定することを忘れないでください。

通常、この目的でダウンストリーム ジョブを使用することは好みません。Jenkins にはビルド フロー全体を 1 つのページで確認できる優れた UI がないからです。もちろん、すべてのビルド フロー ステータスを表示するこのビルド パイプライン プラグインがあります。必要に応じて適切なプラグインを選択できます。

于 2013-03-28T20:15:31.037 に答える
1

これを 1 つのジョブで機能させるには、ビルド手順が失敗しないようにする (0 以外の終了コードを返す) 必要があると思います。次に、テスト結果を分析し、必要に応じてビルドが失敗または不安定であるとマークするビルド後の手順が必要です。

exit 0ビルド/テスト アクションを実行した後、単純な .BAT やシェル スクリプトなど、ビルドを実行するためのラッパー スクリプトを作成する必要がある場合があります。

この種のテスト結果処理を行うビルド後のアクションの例は、Publish JUnit test result reportです。

于 2013-04-05T08:04:55.687 に答える