2017-05-29 12 views
3

Jenkinsの宣言型パイプラインを使い始めました。今私はメーラープラグインのUsageで定義されたのと同じ電子メール通知の挙動を持つようにしたい:Jenkinsパイプラインで同じメーラーの動作を取得する方法

  1. すべて失敗したビルドは、新しい電子メールをトリガします。
  2. ビルドが失敗した(または不安定な)ビルドが成功した場合、危機が終了したことを示す新しい電子メールがトリガーされます。
  3. ビルドが成功した後に不安定なビルドが発生すると、回帰があることを示す新しい電子メールがトリガーされます。
  4. 構成されていない限り、すべての不安定なビルドによって新しい電子メールがトリガーされ、回帰がまだ存在することが示されます。

私は約Notifications in Pipelinesを読んで、それは、上記のルールに基づいて通知されません。さらに、ビルドに失敗した場合には、メッセージ本体にコンソール出力の一部が含まれません。

誰もが宣言パイプラインでこれを行う方法を知っていますか?

答えて

2

次のコードでは、ポストセクションでメーラープラグインを使用できます。これは予想される動作を提供します:

pipeline { 
    agent any 
    stages { 
     stage('test') { 
     steps { 
      script { 
       // change to 'UNSTABLE' OR 'FAILED' to test the behaviour 
       currentBuild.result = 'SUCCESS' 
      } 
     } 
     } 
    } 
    post { 
     always { 
      step([$class: 'Mailer', 
      notifyEveryUnstableBuild: true, 
      recipients: "[email protected]", 
      sendToIndividuals: true]) 
     } 
    } 
} 
+0

それは、そうでない場合は、メールが送信されていない、[パイプライン内のメーラー]参照、パイプラインの先頭に 'currentBuild.result =」SUCCESS''を設定することが重要である(HTTPS: //stackoverflow.com/questions/37169100/use-jenkins-mailer-inside-pipeline-workflow)。 –

+0

そうですが、currentBuild.resultはパイプラインのポストセクションに自動的に設定されません。それは、ジョブの最後にcurrentBuild.result = 'SUCCESS'を設定するほうが良いかもしれません。例えば。投稿セクションの始めに。私の答えはhttps://stackoverflow.com/questions/44329032/how-to-send-back-to-normal-notifications-in-jenkins-declarative-pipelineでご覧ください – Philip

関連する問題