犯人は、壊れていない最後のビルドから現在までに変更をコミットしたユーザーのリストです。Jenkins Email-ext プラグインは、ビルド後のアクション中に犯人に電子メールを送信できます。
Jenkins ジョブ内の Python スクリプト ビルド ステップで、犯人によって定義された電子メールのリストを使用したいと考えています。
誰かがこれを行う方法を提案できますか?
「犯人」リストは、jenkins の SCM プラグインから取得され、最後に成功したビルド以降にコミットしたすべてのユーザーが含まれます。最終的に、email-ext プラグインは scm からリストを取得し、次のヒューリスティックに基づいて電子メール アドレスを生成します。
プラグインは、コミッターの ID と、Jenkins のグローバル構成ページから追加された「デフォルトの電子メール サフィックス」に基づいて電子メール アドレスを生成します。たとえば、変更が「first.last」という ID を持つ誰かによってコミットされ、デフォルトの電子メール サフィックスが「@somewhere.com」である場合、電子メールは「first.last@somewhere.com」に送信されます。
メールアドレスに何らかのパターンがある場合 (そうしなければなりません。そうしないと、email-ext プラグインが正しいアドレスを生成しません)、Groovy スクリプト内でそれらを自分で生成できます。
import hudson.model.*
def culprits = build.getCulprits()
def list = culprits.collect{it.getFullName().toLowerCase().replace(" ", ".") + "@mydomain.com"}
この例では、「Adam Smith」のような犯人を adam.smith@mydomain.com に変換しますが、への呼び出しをへの呼び出しに置き換えて、適切に操作することもできgetFullName()
ますgetId()
。例えば:
def list = culprits.collect{it.getId().toLowerCase() + "@mydomain.com"}
email-ext が使用する基本的な形式はどれですか -ドキュメントからユーザー プロパティの完全なリストを取得できます。
これで、Groovy スクリプトにリストが作成されましたが、そのリストを Python スクリプトで使用できるようにするにはどうすればよいでしょうか? それはあなたが慣れていることに帰着します。リストをワークスペースに書き込んで Python から読み取るか、結果を環境変数に保存するか、ビルド パラメーターに保存することもできます。