發表文章

目前顯示的是有「jelly」標籤的文章

將 Jenkins Job 的歷史結果整理出視覺化的 Daily Report mail (三)

圖片
為了寄出統整 Jenkins 上游 Job 的 daily report mail, 第一篇 說明了 Jenkins Daily Report Job 的設定, 第二篇 說明了如何用 Python script 統計 Job result 以及產生視覺化的圖表。本篇說明如何用 jelly script 產生 html 格式的 mail,email 裡面除了顯示第二篇文章中產生的視覺畫圖表之外,也會包含前一天每個小時的 Job 結果,如下圖: Email-exit Plugin 會預設 jelly script 的位置在 $JENKINS_HOME/email-templates 目錄底下,但是安裝完畢時並沒有這個目錄,也就是說要自己在 Jenkins 安裝目錄下新建一個 email-templates 的 folder,然後把 jelly scripts 放在這個 folder 之下,以我們的例子來說就是 load-monitor-dailyreport.jelly 詳細說明可以參考 Email-ext plugin 的網頁。 這裡可以找到一些 email-ext 提供的 jelly script 的範例 ,建議要快速上手,可以 copy 一個來改,ex: html.jelly 。這個 html.jelly script 預設會包含 change set, maven, junit 等相關的內容,但是因為我們的上游 Job 都是自訂的,因此需要自己修改 script 內容,後文只說明與 daily report 有關的部分。 Jelly Script 的架構如下,後續說明主要都是 BODY 裡面的內容。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?jelly escape-by-default='true'?> <!DOCTYPE html [ <!ENTITY nbsp "&#38;#38;nbsp&#59;"> ]> <j:jelly xmlns:j= "jelly:core" xmlns:st= "jelly:stapler" x...

將 Jenkins Job 的歷史結果整理出視覺化的 Daily Report mail (一)

圖片
當初在處理這個問題的時候,大部分都是參考國外的網站,使用 Jenkins 內建功能送 email 的文章很多,但是 像是要自訂 mail 內容,蒐集統整不同 Job 的狀態以及包含視覺化報表 的部分倒是很少看到,所以就做個紀錄與分享,一方面也是拋轉引玉,歡迎交流。 這裡的做法受限於 "Free-Style" 形式的 Jenkins Job,所以過程會比較繁瑣;但是換句話說,如果只想用 "Free-Style" 形式來創建 Jenkins Job,可以從這篇文章得到一些靈感。 這個主題為了盡量寫得詳細點,會分成三個部分: Jenkins Daily Report Job 的相關設定。( 本篇 ) 使用 Python/Pandas/matplotlib 做資料分析及處理 。 說明使用 jelly script 來客製化郵件內容 。 最後目標是每天自動送出視覺化統計 Jenkins Job 歷史狀態的 email,如下圖。 首先,本篇會說明以下主題: 設定 Jenkins 郵件相關 (gmail) SMTP 設定 需要安裝的 Jenkins Plugin 新增/設定一個 Jenkins "Daily Report" Job 這個系列 沒有 說明的部分如下: (我想這些在網路上應該都很容易可以找到相關資料) 安裝 Jenkins 設定 slave node,並在 slave node 上執行 Jenkins Job 設定 Jenkins 郵件相關 SMTP 設定 讓 Jenkins 寄出郵件需要設定 SMTP server,這邊以使用 gmail SMTP為範例。 Jenkins mail 設定在 "管理 Jenkins" => "設定系統"   http://localhost:8080/configure 詳細設定如下圖,設定完成可以勾選"寄測試信",先試試看設定是否正確。 如果看到 "電子郵件成功寄出"就代表設定正確了。 已知目前 google 認為 Jenkins Plugin登入SMTP的方式安全性較低,使用者必須要自行 "啟用安全性較低的應...