2017-02-16 2 views
0

私のJenkinsのステップでは、java jarファイル(java -Dfile.encoding = UTF-8 -jar C:\ Test1 \ Test.jar C:\ Test \ testを実行するWindowsバッチコマンドがあります。 .log)、その出力はString値です(検証されたJenkinsコンソールで文字列が印刷されています)。どのように私はこの文字列のコンテンツを使用し、編集可能な電子メール本文に挿入するので、私はこの内容を電子メールとして送ることができます。私はジェンキンスのコンソール全体をこの文字列だけの電子メールで欲しいとは思わないでしょう。スクリプトを実行した後に文字列を環境変数として設定する必要があると仮定します。 EnvInjPluginを私のシナリオにどのように使えばいいのかよく分かりません。Jenkins編集可能な電子メールコンテンツをカスタマイズする

答えて

0

事前送信スクリプトを使用してください。例えば

あなたはログに記録されているような文字列:「は、このランダムな整数は、電子メールの内容にする必要があります:3432805」 とコンテンツを電子メールで送信するには、ランダムに生成された整数を追加します。

  1. はあなたが好きで既定のコンテンツをセットするが置き換えられますいくつかの 値を追加します。たとえば、次のように

    これはbuild.logからランダムintです:TO_REPLACE

  2. その後スクリプトプリ送る "詳細設定" をクリックして追加します。

    String addThisStringToContent = ""; 
    build.getLog(1000).each() { line -> 
         java.util.regex.Pattern p = java.util.regex.Pattern.compile("random\\sinteger.+\\:\\s(\\d+)"); 
         java.util.regex.Matcher m = p.matcher(line); 
         if (m.find()) { 
          addThisStringToContent = m.group(1); 
         } 
    } 
    
    if (addThisStringToContent == "") { 
         logger.println("Proper string not found. Email content has not been updated."); 
    } else { 
         String contentToSet = ((javax.mail.Multipart)msg.getContent()).getBodyPart(0).getContent().toString().replace("TO_REPLACE", addThisStringToContent); 
         msg.setContent(contentToSet, "text/plain"); 
    } 
    

ここで、

  • build.getLog(1000) - ビルド出力の最後の1000行を取得します。
  • Pattern.compile("random\\sinteger.+\\:\\s(\\d+)") - コンテンツタイプ
  • String contentToSet = ((javax.mail.Multipart)msg.getContent()).getBodyPart(0).getContent().toString().replace("TO_REPLACE", addThisStringToContent); - - 正規表現は、適切な文字列
  • "text/plain"を見つけるために

が、それはあなたを助けることを願っていますあなたの値と文字列TO_REPLACEを置き換えます。

関連する問題