2013年2月18日 星期一

Jenkins git change log for 中文

我的英文不好,

而且團隊合作上,需要在寄送版本的時候,通知PM or Tester 修改的相關內容

如果用   

${CHANGES_SINCE_LAST_SUCCESS, reverse=false, format="<li>Changes for Build #%n %c </li> ", showPaths=true, changesFormat="<li>[%a]<font color=#ff0099> %m </font></li>", pathFormat="<br>%p<br>"}

 

就可以很輕鬆的達到,在email 中通知變更內容,不過.....

他顯示中文是亂碼 orz

如果用ssh 到後台去看,可以發現如果使用  cat change.xml

依然可以看到正確的中文字,那麼問題應該就出現在讀取這個檔案轉到email上面的問題

  • 產生自己的git change log, 印到email上送出

    我希望產生的log與 ${CHANGES_SINCE_LAST_SUCCESS…} 一樣
    是包含到上次成功build的間所以的log
     所以我需要知道上次成功建立的時間
     
    export LAST_SUCCESS_BUILD_TS=$(stat -f "%m" ../../jobs/${JOB_NAME}/lastSuccessful)
     
    知道時間之後,就要利用git log印出所以的commit message
     
    git log --pretty=format:'<li>%h was %an, %ar, message: <font color=#ff0099>%B</font></li>' --since="$LAST_SUCCESS_BUILD_TS" > GIT-Log-Report.txt
     
    最後會產生我想要的 GIT-Log-Report.txt   
     
    但是!
     
    這個是一個UTF8 的檔案
     
    如果直接用 Jenkins 的網頁觀看 也會看到亂碼,因為他的網頁是用UTF-16讀取的
    螢幕擷取 13 2 19 下午2 582
     
    而Email 呢? 我這裡是希望mail 送出Html的格式出來,而他是用 Big5 讀取的
     
    所以在使用  ${FILE, path="…..txt"}  之前
     
    要先用
     
    iconv -f UTF-8 -t BIG5 GIT-Log-Report.txt > GIT-Log-Report.BIG5.txt
     
    產生big5 的檔案,
     
    最後產生的script :
    螢幕擷取 13 2 19 下午2 58
     
     
    然後再使用   ${FILE, path="GIT-Log-Report.BIG5.txt"}  
     
    將資料印到 Email 上 :
    螢幕擷取 13 2 19 下午3 01
     
     

沒有留言:

張貼留言