2014-12-10 6 views
6

이것이 가능한지는 모르지만 다른 사람이 시도했는지/생각해 보았는지 여전히 묻습니다.Jenkins 콘솔 출력을 HTML 전자 메일로 보냅니다.

다음과 같이 html 코드가 실패 할 경우 빌드가 실행됩니다. 이 html을 모든 수신자에게 전자 메일로 보내려고합니다.

현재 간단한 전자 메일 플러그인을 사용하면 전체 콘솔 출력이 모든 HTML 태그 (모두 읽을 수있는 것은 아닙니다)를 포함하는 이메일로 전송됩니다. 그런 다음 Email Ext 플러그인을 설치했지만 사전 전송 스크립트가 내 콘솔 출력을 읽고 이메일을 보낼 수 있는지 확실하지 않습니다. 아무도 그것을 시도 했습니까? 그것에 시간을 할애 할 가치가 있습니까 아니면 그냥 형식의 텍스트를 표시 출력을 수정해야합니까?

이 빌드는 내부 도구 용이므로 경로가 방화벽 뒤에 있기 때문에 .html 파일을 만들거나 .html 파일 링크를 이메일로 보낼 수 없습니다.

이 기능이 전혀 지원되는지 모르겠지만 콘솔 출력에 html 출력이 표시 될 수 있습니까?

도움 주셔서 감사합니다.

   <style type="text/css"> 
 
        table.gridtable { 
 
        font-family: verdana,arial,sans-serif; 
 
         font-size:11px; 
 
         color:#333333; 
 
         border-width: 1px; 
 
         border-color: #666666; 
 
         border-collapse: collapse; 
 
        } 
 
        table.gridtable th { 
 
        border-width: 1px; 
 
         padding: 8px; 
 
         border-style: solid; 
 
         border-color: #666666; 
 
         background-color: #dedede; 
 
        } 
 
        table.gridtable td { 
 
        border-width: 1px; 
 
         padding: 8px; 
 
         border-style: solid; 
 
         border-color: #666666; 
 
         background-color: #ffffff; 
 
        } 
 
       </style> 
 

 
       <table class="gridtable"> 
 
        <thead> 
 
         <tr> 
 
          <th>Service Checked</th> 
 
          <th>Status</th> 
 
          <th>Response</th> 
 
         </tr> 
 
        </thead> 
 
        <tbody> 
 
         <tr> 
 
          <td>canary</td> 
 
          <td>Success</td> 
 
          <td>Please override the check() method</td> 
 
         </tr> 
 

 
         <tr> 
 
          <td style="color: red;"><strong>www.mysite.com</strong></td> 
 
          <td style="color: red;">Failure</td> 
 
          <td>Ping to https://www.mysite.com/canary?from=here FAILED</td> 
 
         </tr></tbody></table>

답변

8

이메일 Ext 플러그인은 HTML과 잘 작동합니다. HTML을 파싱하는 것은 전자 메일 클라이언트의 몫입니다 (그러나 요즘은 대부분 다시합니다).

질문은 : 빌드가이 HTML을 어떻게 출력합니까? 그것을 파일로 출력합니까? 콘솔 출력에 표시합니까?

텍스트 콘솔 출력에있는 경우

는 사용

<pre>${BUILD_LOG_EXCERPT, start="Regex-for-start", end="Regex-for-end"}</pre>

<pre> 태그 간격/서식을 유지한다.
startend 정규 표현식은 로그 표시를 시작하는 "시작 라인"과 로그 표시를 중지 할 "종료 라인"을 식별하는 것입니다.

startend 행 자체는 제외됩니다. 그래서, 당신의 빌드에서 머리글과 바닥 글을 HTML 출력 직전과 직후에 놓고 여기에서 사용하십시오.

전자 메일 구성에서 콘텐츠 참조 물음표 아이콘 을 클릭하십시오.

+0

빠른 답장을 보내 주셔서 감사합니다. 내 빌드 출력이 콘솔 HTML 출력합니다. 나는 당신의 제안 된 방법을 지금 시도 할 것이다! – Sumitk

+0

그래서 나는 pre-send 스크립트에서 당신의 예제를 시도했지만 그것은 이상한 예외를 준다. 나는 이것을 $ {BUILD_LOG_EXCERPT, 시작 = "\\ b (시작 - 여기) \\ b", 끝 = "\\ b (끝 - 여기) \\ b"}'와 내 미리 보내기 블록에 넣었다. 테스트 PHP 스크립트는 그 전후에 html을 인쇄하지만 org.codehaus.groovy.control.MultipleCompilationErrorsException : 시작 실패 : Script1.groovy : 1 : 예상치 못한 토큰 : <@ line 1, column 1.

^ 1 오류' – Sumitk

+1

아니요 ... 'Pre-send'가 아닌 'Default Content'에서 이메일 본문으로 들어갑니다. – Slav

1

email-ext 플러그인은 나를 위해 꽤 잘 작동합니다. 시도 해봐.

+0

감사 I을 지금해볼거야! – Sumitk

4

그래서 나는 이것을 @Slav의 도움으로 해결 한 것입니다.

젠킨스 작업이 스크립트 실행중인 :

<?php 
echo "start-here\n"; 
echo "<html><body><table border=1> 
<tr><td>yello1111</td><td>11111bbbbbbb</td></tr> 
<tr><td>yelloooo</td><td>bbbbbbb</td></tr> 
</table></body></html>"; 
echo "end-here\n"; 

작업이 email-ext로 구성되었으며 에서 빌드 후 추가를 Action (작업)> 편집 가능한 전자 메일 알림 -> 기본 콘텐츠 내가 다음 넣어 :

${BUILD_LOG_EXCERPT, start="\\b(start-here)\\b", end="\\b(end-here)\\b"} 

이렇게하면 이메일이 html 콘텐츠가 아닌 html 콘텐츠로 전송됩니다.

1

이동 "- 젠킨스 관리"로 -> "구성 시스템"은 "확장 된 전자 메일 알림"설정에 보다, "기본 콘텐츠"텍스트 영역에서 아래 줄을 추가

<pre>${BUILD_LOG, maxLines=9999, escapeHtml=false}</pre> 
관련 문제