工作中用 Jenkins 做 iOS 和 Android 的持續(xù)集成,之前實現(xiàn)的是當 git 有新代碼提交的時候,就會自動編譯并上傳安裝包到蒲公英,然后自動發(fā)送QQ群通知或者討論組通知給相關(guān)小伙伴,方便其他小伙伴直接下載測試。但也有一點不方便的是,其他人下載還不能明確的知道這一版更新了什么。考慮到因為每次 git 的代碼提交會說明這次提交修改了什么,所以就打算直接把獲取 git 的提交記錄顯示在最終的編譯完成的通知中,直觀的顯示給每個人。
最后收到通知的效果基本是下面這個樣子:
由于 Jenkins 并沒有官方的插件來做這個事,只能找現(xiàn)成的已經(jīng)有的開源代碼自己編譯插件,最終也終于找到了。
那就直接開始做了。
下載源代碼
首先,這個插件的源碼地址是:https://github.com/daniel-beck/changelog-environment-plugin
下載源碼。
安裝 Maven
然后編譯,編譯需要 Maven,如果沒有裝Maven,下面有一個簡單的安裝步驟,如果安裝過程中出現(xiàn)問題,還請自行谷歌解決。
下載地址:https://maven.apache.org/download.cgi
解壓到某個目錄下,例如:
/Users/XXX/apache-maven-3.5.0
然后
$ vi ~/.bash_profile
添加 Maven 相關(guān)環(huán)境
#?Maven
export?M2_HOME=/Users/sunbinhua/apache-maven-3.5.0
export?PATH=$PATH:$M2_HOME/bin
保存退出,輸入命令讓 Maven 生效
$ source?~/.bash_profile
輸入 mvn -v 來檢查 Maven 是否生效。
編譯源碼生成 hpi
cd 到?changelog-environment-plugin-master 下,執(zhí)行
$?mvn verify
經(jīng)過比較長的時間,會在changelog-environment-plugin-master/target/下有個changelog-environment.hpi文件這就是我們需要的插件。
然后把生成的插件上傳到 Jenkins。
使用方法
在項目的配置中,構(gòu)建環(huán)境下面多了一項 ?Add Changelog Information to Environment
選中后,多了三項:Entry Format、File Item Format、Date Format
如下圖:
Entry Format中添加?%3$s(at %4$s via %1$s),參數(shù)分別為ChangeLog內(nèi)容,時間,提交人。
Date Format中添加?yyyy-MM-dd HH:mm:ss 就是時間格式。
在命令行中使用SCM_CHANGELOG獲取即可,比如下圖是我使用的地方