1

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

ユース ケースは、プロジェクトごとに 1 つのデプロイ ジョブがあるが、そのジョブは環境ごとにパラメーター化されているというものです。ジョブを実行すると、デプロイ先の環境 (Dev1、Dev2、QA など) を選択できます。理想的には、新しいビルドが QA に送信されたときに通知メールを送信したいのですが、新しいビルドが Dev に送信されたときに通知メールを送信したくありません。電子メール ボックスがあふれます。

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

ありがとう。

4

2 に答える 2

1

問題を解決するのは非常に厄介な方法ですが、他の方法で解決できない場合は...

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

もちろん、これを行う場合は、javax.mail を使用して小さなパラメーター化された電子メール送信者を作成し、実際に「java」タスクを呼び出す ANT プロジェクトを「ビルド」して Jenkins に実行させる方がよいでしょう。次に、独自の電子メール送信者 (フル コントロール) を持ち、それを他のタスクに依存するジョブにすることができます。

誰かがもっと簡単な方法でチャイムを鳴らしてくれることを願っています...

于 2012-05-09T22:32:37.320 に答える
0

email-ext では、指定された 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());

警告、私はこれを試していませんが、これはスクリプト例として機能するはずです:

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

「MY_DEPLOYMENT_ENV」と呼ばれる、作成した文字列または選択パラメーターの値を取得し、現在の値が「QA」の場合に電子メールをトリガーする必要があります

于 2016-04-14T10:37:04.273 に答える