jenkins-APP打包頁面展示二維碼

YatHo發表於2017-07-05

背景:

  客戶要求在APP打包頁面展示二維碼。雖然感覺這個功能很雞肋,但是還是加上吧。

效果展示:

  

 

配置:

在上圖中,106對應的內容是BuildName,我們可以通過build-name-setter外掛來實現自定義配置;二維碼和二維碼說明是對應的BuildDescription

安裝description setter plugin外掛後,在配置頁面的Build欄目下,Add build step中會出現Set build description配置項,新增該配置項後就會出現如下配置框。

Jenkins 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

新增後的配置頁面如下圖所示:

Jenkins archive the artifacts

通常,我們只需要配置Files to archive即可。定位檔案時,可以通過正規表示式進行匹配,也可以呼叫專案的環境變數;多個檔案通過逗號進行分隔。

通過這種方式,我們就可以實現在每次完成構建後將需要的檔案收集起來進行存檔,以便後續在Jenkins的任務頁面中進行下載。

 

相關文章