2016-11-15 3 views
2

に失敗したときに、私はとジェンキンスジョブ持つ異なる行動を取ることができます:ローカルワークスペースを更新しは、私は、電子メール・メッセージを中断またはGitのコマンドは

  • のGit SCMを。
  • いくつかのアサーションを作成するためにいくつかのGit CLIコマンドも実行するシェルスクリプトで、send-toにext-emailという動的なrecipients.txtファイルをビルドします。
  • 電子メールメッセージを送信します。メッセージは、ワークスペースのリフレッシュが正常に完了した後で、シェルスクリプトのテストでGitコマンドに基づいて失敗したアサーションに基づいています。これは現在Failure - Anyでトリガーされています。

私は何をしたいのGitのコマンドを中止させるリモートGitの停電の場合には、特定の障害の電子メールを避けるている - それは、すべてのGitコマンドが成功した場合のみ、アウトメールが、その後一定を検出する必要があります調子。

ビルドを中止し、リモートで問題が発生したためにGitコマンドが失敗した場合にEメール拡張メッセージを送信しない方法はありますか? Gitが失敗したときにビルドと電子メールを中止する方法を試してみるのが最善でしょうか、それを避けることができるいくつかのEmail Extトリガーがありますか?

答えて

1

私が問題の中核を理解していれば、Git CLIコマンドが失敗した場合にエラーが発生しないようにするだけです。 try/catchブロック内でgitシェルコマンドを実行できます。これにより、ゼロ以外のエラーコードが防止されるため、電子メールは送信されません。

sh """ 
    { 
     git clonep https://... 
     # oops, typo above would normally exit 1 (error) 
    } || { 
     echo Continuing 
    } 
""" 
+0

これが機能しない場合は、お知らせください。 –

+0

これはGitプロセスの2番目のセット(シェルブロック内のもの)には最適です。私は現在email-extが組み込みGit SCMブロックの失敗を無視する方法を探しています。それが失敗すると、スクリプトブロックは実行されませんが、 'Email was triggered for:Failure - Any'が引き続き発生します。つまり、私はワークスペースSCMブロックを試す/キャッチする方法がわかりません。 – javabrett

+0

質問にいくつかの詳細を追加しました。私は動的受信者リストを 'recipients.txt'として構築しています。私がhttps://wiki.jenkins-ci.org/display/JENKINS/pre-scm-buildstepを追加すると、Git SCMプラグインが実行される前でもこのファイルが常にクリアされることが保証されます。私はそれらの条件の下で失敗の電子メールを得ない。 – javabrett

関連する問題