2012-05-09 25 views
1

入力パラメータに基づいて電子メールをトリガする(またはトリガしない)ジョブがいくつかあります。Jenkins - 入力パラメータに基づいて電子メールをトリガーする

私はプロジェクトごとに1つのデプロイジョブを持っていますが、そのジョブは環境ごとにパラメータ化されています。私たちはあなたが展開する環境(Dev1、Dev2、QAなど)を選択できる仕事を実行します。理想的には、新しいビルドがQAに送信されたときに通知メールを送信したいのですが、新しいビルドがDevに送信されたときに通知メールを送信することは望ましくありません。電子メールボックスを洪水させるだろう。

私はグーグルで試してみましたが、解決策が見つかりませんでした。私は現在email-extプラグインを使用しています。

ありがとうございました。

+0

この問題の解決策を見つけましたか? – lakai

+0

この回答は私のために働いた:https://stackoverflow.com/a/31564222/1097104 –

答えて

1

か - トリガー「スクリプトを作成した後は、」指定されたかどうかにトリガされますgroovyスクリプトはtrueまたはfalseを返します。 スクリプトのヘルプが表示されます。

このエリアを使用して、独自のトリガロジックをgroovyに実装します。最後の行は、ブール値として評価され、トリガーが電子メールを送信するかどうかを決定します。

これらは、スクリプトで利用可能なものについて詳しくは説明していませんが、githubのソースコードからは、少なくともビルドとプロジェクトのように見えます。

cc.addCompilationCustomizers(new ImportCustomizer().addStarImports(
      "jenkins", 
      "jenkins.model", 
      "hudson", 
      "hudson.model")); 

    Binding binding = new Binding(); 
    binding.setVariable("build", build); 
    binding.setVariable("project", build.getParent()); 
    binding.setVariable("rooturl", JenkinsLocationConfiguration.get().getUrl()); 
    binding.setVariable("out", listener.getLogger()); 

警告私はこれを試していないが、これは例のスクリプトとして動作するはずです:あなたは「MY_DEPLOYMENT_ENV」と呼ばれる作成した文字列または選択パラメータの値を取得する必要があります

build.buildVariables.get("MY_DEPLOYMENT_ENV" == "QA") 

メールがトリガされた場合は現時点での価値は「QA」

1

それは問題を解決するための非常に厄介な方法ですが、あなたは他の手段でそれを行うことができない場合...

に基づいて合格/失敗し、主に存在する依存ジョブを作成しますこのパラメータは、ジョブのパラメータとして渡されます。それから、の決定を電子メール通知の仕事に連鎖させることができます。

もちろん、もしこれをやろうとすれば、javax.mailを使って小さなパラメータ化された電子メールの送信者を書いて、Jenkinsに実際に "java"と呼ばれるANTプロジェクトを "ビルド" " 仕事。その後、あなた自身の電子メール送信者(フルコントロール)があり、それを他のタスクに依存する仕事にすることができます。私は、誰かが簡単な方法でチャイムを願ってい

...あなたが「スクリプト - ビルド前に」を追加することができ、電子メール-EXTで

関連する問題