背景:
客戶要求在APP打包頁面展示二維碼。雖然感覺這個功能很雞肋,但是還是加上吧。
效果展示:
配置:
在上圖中,106對應的內容是BuildName
,我們可以通過build-name-setter
外掛來實現自定義配置;二維碼和二維碼說明是對應的BuildDescription
。
安裝description setter plugin
外掛後,在配置頁面的Build
欄目下,Add build step
中會出現Set build description
配置項,新增該配置項後就會出現如下配置框。
該功能的強大之處在於,它可以在構建日誌中通過正規表示式來匹配內容,並將匹配到的內容新增到BuildDescription
中去。
例如,我們想要展示的二維碼圖片是在每次構建過程中生成的,因此我們首先要獲取到二維碼圖片檔案。
我的做法是,使用shell提交APP至fir生成二維碼圖片和提交短連結。
I, [2017-07-05T14:01:18.888407 #6768] INFO -- : Uploading app binary...... I, [2017-07-05T14:05:36.265570 #6768] INFO -- : Fetch app info from fir.im I, [2017-07-05T14:05:36.850586 #6768] INFO -- : ✈ -------------------------------------------- ✈ I, [2017-07-05T14:05:36.850628 #6768] INFO -- : Published succeed: http://fir.im/gapn
然後,在Set build description
配置項的Regular expression
就可以按照如下正規表示式進行匹配:
Published succeed: (.*)$
接下來,就可以在Description
中對匹配到的結果進行引用二維碼連結。
<img src='${BUILD_URL}artifact/version/fir-XDTX-TEST.png' height="200" width="200">\n<a href='\1'>Install Online</a>
通過以上方式,就可以實現前面圖片中的效果。在這裡,我們用到了HTML的標籤,而Jenkins的Markup Formatter
預設是採用Plain text
模式,因此還需要對Jenkins對系統配置進行修改,在安全設定中選擇safe html。
4、收集編譯成果物
在上面講解的展示二維碼圖片一節中,用到了${BUILD_URL}artifact/version/fir-XDTX-TEST.png一項,這裡的URL就是用到了編譯成果物收集後儲存的路徑。
Archives build artifacts
是Jenkins預設自帶的功能,無需安裝外掛。該功能在配置頁面的Post-build Actions
欄目下,在Add post-build action
的列表中選擇新增Archives build artifacts
。
新增後的配置頁面如下圖所示:
通常,我們只需要配置Files to archive
即可。定位檔案時,可以通過正規表示式進行匹配,也可以呼叫專案的環境變數;多個檔案通過逗號進行分隔。
通過這種方式,我們就可以實現在每次完成構建後將需要的檔案收集起來進行存檔,以便後續在Jenkins的任務頁面中進行下載。