背景:
客戶要求在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的任務頁面中進行下載。