Jenkins生成APK鏈接的二維碼


Jenkins配置

1. 安裝插件description setter plugin

2. Manage Jenkins => Configure Global Security =>Markup Formatter 中默認的Plain text 修改為 Safe HTML

Window環境

1.下載安裝Python如3.7.5版本,安裝Python到電腦上如C:\Python37,將C:\Python37,C:\Python37\Scripts添加到Path環境變量中

2.安裝Python二維碼插件,命令如下:

  pip install qrcode
  pip install Image

3. 編寫python腳本,如下:

import qrcode
import sys
data = sys.argv[1]
path=sys.argv[2]
img = qrcode.make(data)
img.save(path)

此腳本傳入兩個參數,第一個參數為下載地址字符串,第二個參數為二維碼圖片保存路徑

4.在jenkins中調用腳本生成二維碼

Widows bat批處理如下:

set BASE_PATH=%TOMCAT_HOME%\webapps\apk\%BUILD_ID%
set BASE_URL=http://192.168.0.102:8080/apk/%BUILD_ID%
mkdir %BASE_PATH%
copy %WORKSPACE%\app\build\outputs\apk\debug\*.apk %BASE_PATH%
python D:\myqrcode.py %BASE_URL%/app-debug.apk %BASE_PATH%\qrcode.png
echo DESC_INFO:%BASE_URL%/qrcode.png,%BASE_URL%/app-debug.apk

 Linux Shell腳本如下:

BASE_PATH=${TOMCAT_HOME}/webapps/apk/${BUILD_ID}
BASE_URL=http://192.168.0.102:8080/apk/${BUILD_ID}
mkdir ${BASE_PATH}
cp ${WORKSPACE}/app/build/outputs/apk/release/*.apk ${BASE_PATH}
python /root/app/myqrcode.py ${BASE_URL}/app-debug.apk ${BASE_PATH}/qrcode.png 
echo DESC_INFO:${BASE_URL}/qrcode.png,${BASE_URL}/app-debug.apk

上面的命令做了以下事情:

(1)設置變量BASE_PATH為apk的輸出路徑,即將apk文件在Tomcat下的路徑,如D:\jack\software\apache-tomcat-7.0.70\webapps\apk\82,BUILD_ID為jenkins自帶的環境變量,表示此次構建生成的ID

(2)設置變量BASE_URL為apk對外的訪問路徑,即鏈接地址,如http://192.168.0.102:8080/apk/82

(3)創建目錄,如D:\jack\software\apache-tomcat-7.0.70\webapps\apk\82

(4)復制打包的apk到tomcat指定目錄下

(5)調用python腳本,生成二維碼圖片

(6)打印二維碼信息到log中,供后面的步驟使用

5.在Add post-build aciton中選擇添加set build description,如下:

<img src="\1" height="200" width="200"  /> <a href="\2">點擊下載</a>

 最后構建的結果如下:

如需在二維碼中添加Logo,可參考以下腳本

from PIL import Image
import qrcode
import sys

data=sys.argv[1]
path=sys.argv[2]
img=qrcode.make(data)

img=img.convert("RGBA")
icon=Image.open("xx/logo.png")
img_w,img_h=img.size
factor=5
size_w=int(img_w/factor)
size_h=int(img_h/factor)
icon_w,icon_h=icon.size
if icon_w>size_w:
  icon_w=size_w
if icon_h>size_h:
  icon_h=size_h
icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS)
w=int((img_w-icon_w)/2)
h=int((img_h-icon_h)/2)
icon = icon.convert("RGBA")
img.paste(icon,(w,h),icon)

img.save(path)

生成的二維碼如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM