7

一連のマルチジョブ フェーズを持つマルチジョブ プロジェクト (Jenkins マルチジョブ プラグインで作成) があります。これらのジョブの 1 つが SubJob01 と呼ばれるとします。ビルドされるジョブはそれぞれ、「このプロジェクトを実行できる場所を制限する」オプションで構成され、1 つのノードに関連付けられます。SubJob01 は Slave01 に関連付けられています。

ノードがオフラインのときにこれらのジョブが「(保留中 — スレーブ 01 はオフラインです)」と言うのではなく、すぐに失敗するようになれば幸いです。具体的には、SubJob01 にビルド試行の記録があり、ビルドが失敗としてマークされるようにしたいと考えています。このようにして、Jenkins ビルド タイムアウト プラグインを使用してすべてを中止する代わりに、必要に応じて状況を処理するように MultiJob プロジェクトを構成できます。

すべてのノードがオフラインの場合にビルドをフェイルファストする方法を知っている人はいますか? MultiJob プロジェクトにシステムの Groovy スクリプトを散在させて、目的のノードがオフラインになっているかどうかを確認することもできますが、それは、既に機能であるべきものを間違った場所で再発明しているように思えます。

4

2 に答える 2

0

ジェンキンス パイプライン ステートメント'beforeAgent true'は、エージェントに入る前に when 条件を評価する際に使用できます。

    stage('Windows') {
      when {
        beforeAgent true
        expression { return ("${TARGET_NODES}".contains("windows")) }
      }
      agent { label 'win10' }
      steps {
        cleanWs()
        ...
      }

参照:

于 2021-05-28T16:33:21.127 に答える