2017-07-20 2 views
0

私はパイプラインの助けが必要です。私はおそらくここで簡単な情報を欠場するでしょう。ジェンキンスパイプラインはPHP linterエラーで中止しません

だから私は、次の例のパイプラインがあります:テスト、私は意図的に作成された壊れたPHPコードとして

pipeline { 
    agent any 

    stages { 
     stage('Build') { 
      steps { 
       ... some build steps (irrelevant) ... 
      } 
     } 
     stage('Test'){ 
      steps { 
       sh 'find . -type f -name "*.php" -exec php56 -l {} \\;' 
      } 
     } 
    } 
    post { 
     success { 
      echo 'posting success to GitLab' 
      updateGitlabCommitStatus(name: 'jenkins-build', state: 'success') 
     } 
     failure { 
      echo 'posting failure to GitLab' 
      updateGitlabCommitStatus(name: 'jenkins-build', state: 'failed') 
     } 
    } 
} 

を、と私は私のコードベースに手動で行find . -type f -name "*.php" -exec php56 -l {} \\;を実行したとき、私はそれがエラーを検出していることがわかります。 また、Jenkinsジョブのコンソール出力では、同じことが表示されます。エラーが検出されます。

しかし、私の成功ブロックが次にトリガされます。成功/失敗ブロックを正しく使用していませんか? findステートメント自体に構文エラーを追加すると(たとえば、\\;部分を破棄する)、エラーがトリガーされ、予期したとおりにエラーが発生します。

編集(重複質問について)

この質問はanother questionの重複としてマークされましたが、私は実際に必要な情報は、ステップまたはSH-ステップが失敗した事実についてだったので。この投稿と回答には、探している他の人のための関連情報が含まれているので、私はこのように保ちます。

+0

[ファイルの1つで失敗した場合、find -execを終了する方法](https://stackoverflow.com/questions/14871147/how-to-exit-from-find-exec-if-それはファイルの1つに失敗します) – StephenKing

答えて

関連する問題