2017-03-17 6 views
0

私はJenkinsパイプラインで一連のステージを実行します。 各ステージはテストを表します。 ステージ(テスト)が失敗しても、私は次のステージ(テスト)を続行したいと思いますが、どうすればよいか分かりません。ステージが失敗した後もパイプラインを続ける

私が知っている唯一の解決策は、try/catch節でステージステップを囲むことですが、このようにしてテストが失敗したか成功したかどうかはわかりません。

これらは並列に実行することはできません。それらは順次実行する必要があります。

もっと良い解決策はありますか?

関連質問:Jenkins continue pipeline on failed stage

答えて

0

ジェンキンスが失敗している段階わからないので、これは、最適ではないですが、私たちは、このデータを手動で収集:

def success = 0 
    def failed = [] 

    for (int i = 0; i < tests.size(); i++) { 
     def test = tests[i] 
     stage(test) { 
      try { 
       sh "...." 
       success++ 
      } catch (e) { 
       failed << test 
      } 
     } 
    } 
    stage('Report') { 
     def failCount = tests.size()-success 
     if (failCount == 0) 
      echo "Executed ${success} tests successfully." 
     else 
      error """Executed ${success} tests successfully and ${failCount} failed: 
${failed.join(', ')}""" 
    } 
関連する問題