2014-12-10 13 views
6

Tôi không biết liệu điều này có thể xảy ra hay không nhưng vẫn hỏi tại đây xem có ai đã thử/nghĩ về nó hay không.Gửi đầu ra giao diện điều khiển Jenkins dưới dạng email HTML

Tôi có một phiên bản đang chạy khi không lặp lại mã html như được đưa ra dưới đây. Tôi muốn gửi html này dưới dạng email cho tất cả người nhận.

Hiện tại khi tôi sử dụng plugin email đơn giản thì toàn bộ đầu ra của bảng điều khiển được gửi dưới dạng email chứa tất cả các thẻ html này (không thể đọc được). Sau đó, tôi đã cài đặt plugin Email Ext nhưng tôi không chắc chắn nếu kịch bản lệnh gửi trước có thể đọc đầu ra giao diện điều khiển của tôi và gửi email. Có ai thử nó không? Có đáng để dành thời gian cho nó hay tôi nên sửa đổi đầu ra để hiển thị văn bản đã định dạng?

Bản dựng này dành cho các công cụ nội bộ và tôi không thể tạo tệp .html hoặc gửi liên kết tới tệp .html dưới dạng email vì đường dẫn phía sau tường lửa.

Tôi không biết liệu điều này có được hỗ trợ chút nào hay không nhưng có khả năng đầu ra giao diện điều khiển hiển thị đầu ra html không?

Cảm ơn sự giúp đỡ!

   <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>

Trả lời

8

Plugin Ext email hoạt động tốt với HTML. Tùy thuộc vào ứng dụng email của bạn để phân tích HTML (nhưng sau đó một lần nữa, hầu hết những ngày này đều làm).

Câu hỏi đặt ra là: cách xây dựng của bạn xuất HTML này ở trên? Nó có xuất nó ra không? Nó có hiển thị nó trong Đầu ra Console không?

Nếu văn bản là trong giao diện điều khiển đầu ra, sử dụng:

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

Các <pre> thẻ là để duy trì khoảng cách/định dạng.
Các biểu thức chính quy là startend để xác định "vạch xuất phát" từ đó bắt đầu hiển thị nhật ký và "dòng kết thúc" để dừng hiển thị nhật ký.

Lưu ý rằng các chính các dòng startend đều bị loại trừ. Vì vậy, trong bản dựng của bạn, hãy đặt dòng đầu trang và chân trang ngay trước và ngay sau đầu ra html của bạn và sử dụng chúng ở đây.

Để tham khảo, trong cấu hình email-mở rộng, hãy nhấp vào biểu tượng dấu hỏi nội dung tham chiếu dấu hỏi chấm ?

+0

Cảm ơn bạn đã trả lời nhanh. Xây dựng của tôi đầu ra html này trong đầu ra Console. Tôi sẽ thử phương pháp được đề xuất của bạn ngay bây giờ! – Sumitk

+0

Vì vậy, tôi đã thử với ví dụ của bạn trong kịch bản gửi trước nhưng nó cho tôi một ngoại lệ kỳ lạ. Tôi đặt điều này trong khối gửi trước của tôi: '$ {BUILD_LOG_EXCERPT, bắt đầu =" \\ b (bắt đầu tại đây) \\ b ", end =" \\ b (kết thúc tại đây) \\ b "}' và của tôi thử nghiệm php script là in hai trước và sau khi html nhưng tôi nhận được 'org.codehaus.groovy.control.MultipleCompilationErrorsException: khởi động thất bại: Script1.groovy: 1: mã thông báo không mong muốn: <@ line 1, column 1.

^ 1 lỗi' – Sumitk

+1

Không, không ... nội dung email, trong 'Nội dung mặc định', không phải' gửi trước' – Slav

1

email-ext Plugin hoạt động khá tốt đối với tôi. Hãy thử một lần.

+0

Cảm ơn Tôi sẽ thử ngay bây giờ! – Sumitk

4

Vì vậy, đây là cách tôi đã giải quyết nó với sự trợ giúp của @Slav.

Jenkins công việc được chạy kịch bản này:

<?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"; 

Công việc đã được cấu hình với email-ext và trong Thêm bài-build action-> Notification Email Editable -> Default Content tôi đặt như sau:

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

Email này gửi email dưới dạng nội dung html chứ không phải văn bản html.

1

Đến "Quản lý-Jenkins" -> "hệ thống cấu hình" Thần trên "Extended E-mail thông báo" cài đặt, đưa dòng dưới đây trong "nội dung mặc định" text-khu vực

<pre>${BUILD_LOG, maxLines=9999, escapeHtml=false}</pre> 
Các vấn đề liên quan