2016-11-15 10 views
11

私は迅速なチェックを実行する一連のステージを持っています。私は失敗があってもそれらをすべて実行したい。例:デフォルトの段階threeによって実行されないように続行Jenkinsパイプラインが失敗したステージを過ぎた

stage('one') { 
    node { 
     sh 'exit 0' 
    } 
} 
stage('two') { 
    node { 
     sh 'exit 1' // failure 
    } 
} 
stage('three') { 
    node { 
     sh 'exit 0' 
    } 
} 

ステージtwoは、失敗します。

これは通常parallelの仕事ですが、ステージビューで表示したいと考えています。以下のモックアップ:

  • ビルド#4は、通常何が起こるかを示しています。ジョブtwoが失敗し、threeが実行されません。
  • 私が見たいものを見せるためにPhotoshop Build#6を作成しました。ジョブtwoは失敗し、そのまま表示されますが、threeは実行されます。実際のJenkinsはおそらくBuild#6全体を赤で表示しますが、これはもちろん問題ありません。

Mock up of desired Stage View result

+3

使用しても、例外の場合には、ビルド赤をマークするステージ2 –

+3

または組み込みの 'catchError'周り/キャッチしてみてください。 – izzekil

+0

素晴らしいコメント@EngineerDolleryと@izzekilありがとうございました。私は実際にステージ「2」がパイプラインを止めるのを防ぐためにtry/catchを使うことができますが、今は 'two'ステージが成功とマークされています - 実際には失敗しても緑です。 –

答えて

1

これは動作するはずです。ただし、1つでも失敗した場合はすべてのボックスが赤くなりますが、エラーのあるボックスが表示されるので、失敗したジョブを簡単に区別できます。

def indexes = ['one', 'two', 'three'] 

node() { 
    for (index in indexes) { 
     catchError { 
      stage(index) { 
       println index 
       sh '''echo "123"''' 
      } 
     } 
    } 
} 
関連する問題