原文:https://www.jianshu.com/p/513ab6915dbd
在基於Jenkins進行CI持續集成的工作,在構建后上傳蒲公英時想將本次版本的git commit信息同步到蒲公英的下載頁面。Jenkins每次構建都會根據Git 的提交記錄生成一個Web頁面來顯示自上次構建之后的提交記錄列表(如圖1),但是Jenkins卻並沒有提供可以獲取這個Strings的功能。

1.Maven安裝
下載地址:https://maven.apache.org/download.cgi(如圖)。
將下載的壓縮包解壓到某個目錄下,例如:/Users/用戶名/apache-maven-3.5.3。
在終端執行:
$ vi ~/.bash_profile
$ export M2_HOME=/Users/用戶名/apache-maven-3.5.3
$ export PATH=$PATH:$M2_HOME/bin
最后在終端執行如下命令來使.bash_profile生效:
$ source ~/.bash_profile
可以輸入mvn -v來檢查Maven是否生效
2.插件安裝
Jenkins里面同樣有人反饋了同樣的需求,有人給出了一個插件解決獲取git change log的需求,插件開源地址(https://github.com/daniel-beck/changelog-environment-plugin)
2.1 因作者並沒有將插件編譯上傳,所以我們需要將項目Clone到本地
2.1 然后在項目根目錄下執行 mvn verify ,因為依賴較多,第一次build時間會比較漫長,需耐心等待
2.3 build完成之后項目根目錄中“target”文件夾中會出現“changelog-environment.hpi”這個文件
(注:mvn verify 是Maven命令,文章最后簡單說明如何安裝),插件現已上傳到GitHub上(https://github.com/KrisMarko/kr-changelog)。
3.使用
在Jenkins的系統管理-> 管理插件-> 高級->上傳插件,將剛剛編譯生成的“changelog-environment.hpi”文件上傳並安裝到Jenkins中,安裝完成后,會在“構建環境”中有“Add Changelog Information to Environment”選項,選中后會有Entry Format、File Item Format、Date Format三個可配置項,第一個就是填寫提交日志輸出格式的地方,采用的是Java String.format占位符的形式。其中可以使用四個參數,分別是:
1.提交的作者
2.提交的 ID
3.提交信息
4.提交時間(通過 Date Format 控制格式)
例,我在Entry Format輸入 %3$s (via %1$s)\n,然后有一條提交記錄,提交信息為「fix bug」,提交者為 Kris.Marko,那么輸出到環境變量的字符串就是 “fix bug (via Kris.Marko)\n” (后面的 \n 是為了多層轉義,視使用情況請自行調整)。
通過如上設置之后,在構建時就可以在shell中來獲得SCM_CHANGELOG變量來取到更新日志了。比如自動上傳更新信息到內測平台(如蒲公英)。