概述
上一篇我们已经把Jenkins 打包好的 apk
文件上传到tomcat服务器,可以提供下载了。但这个下载需要手动去点击,才能下载。而现在的人又都那么懒,最好的下载方式当然是扫个二维码就能下载。
生成二维码工具
我们这里使用 qrcode,这是个python
开源库。具体使用方法可以看官方文档。关于怎么安装 python
,作为程序员,我想自己搞定吧。不过好多人推荐这个教程,我也贴在这吧,这是windows
平台的。说下使用这个库的注意事项,如下。
- 这个库使用的
python3
,所以不要装错了。 -
qrcode 会使用到
PIL
这个图片处理库。但这个库只支持到python2
,python3
应该安装Pillow
这个库,可参考python 安装PIL . - 不需要安装 qrcode 。把代码
clone
下来就OK了。我们采用执行脚本的形式生成二维码。当然你也可以用其他方式生成二维码。
jenkins 配置全局环境变量
Manage jenkins
-->Config System
设置全局环境变量 PYTHON
,值为你的python3
的位置。一般为 bin
下的python
文件的路径。
执行脚本生成对应二维码
增加构建信息
找到对应的项目,点击配置。选择构建菜单,新增Execute shell
,如下。
当然如果你是
Windows
环境可能需要新增的是Execute Windows batch command
脚本组成
下面来看下脚本的组成,先贴上脚本代码。如下
xx/xx/bin/python /Users/tuoanlan/Developer/python_code/qrcode/myqr.py http://142.34.330.921:8080/apk/${BUILD_TIME}/JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk -v 7 -n jenkins.png -p /Users/zhang/Developer/python_code/qrcode/timo.jpg -c -con 1.5 -bri 1.6 -l L -d app/build/outputs/release/${BUILD_TIME}
-
第一段
xx/xx/bin/python
:是我的python3
的全路径(虽然我这里设置了全局变量,但不生效,和我conda
环境有关。因为我的shell
使用conda
控制环境的,而启动shell
就会启用基础环境,所以我这里使用的是全路径。) -
第二段
/Users/zhang/Developer/python_code/qrcode/myqr.py
:是myqr.py
脚本的路径。myqr.py
是我们clone
下来的qrcode
仓库下的一个脚本。 -
接下来的参数都是调用
myqr.py
脚本,需要传的参数。详情可见 qrcode 使用说明-
http://134.14.232.201:8080/apk/JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk
是拼接的apk
的下载地址。也就是扫描二维码后指向的地址。 -
-v 7
控制边长,二维码的边长 -
-l L
纠错等级,L
是最低 -
-d app/build/outputs/release/${BUILD_TIME}
指定二维码图片的存放路径。 -
-p /Users/zhang/Developer/python_code/qrcode/tim.jpg
指定二维码中的图片 -
-c
二维码中图片显示为彩色 -
-con 1.5
调节图片的对比度为1.5,默认为1 -
-bri 1.6
调节图片的亮度 -
-n xxxx.png
指定生成二维码图片的名称。 - 如果未指定,生成的二维码图片默认名称为
qrcode.png
- 如果你指定了图片,如
github.jpg
,但未指定二维码图片名称。那么生成的二维码图片名称默认为github_qrcode.png
需要注意噢!,所以建议指定下二维码图片的名称
到这里我们执行构建就能生成二维码的图片了。但是这个图片在app/build/outputs/release
下,每次还要找到这个文件然后扫码。
-
注意:如果你是 Windows
环境。那么拼接apk
下载链接的时候。可能需要使用%%
获取动态参数。如${APP_VERSION_NAME}
,在Windows平台,则应该使用%APP_VERSION_NAME%
这种方式获取。
显示二维码
效果如下,在构建历史中就可以看到二维码,可扫码下载,也可以点击下载。
jenkins_python_3
第一步: 设置标记格式器(Markup Formatter)
首先需要修改设置,将标记格式器设置为 Safe HTML
,步骤如下。
Manager Jenkins
-->Configure Global Security
-->标记格式器(Markup Formatter)
更改为 Safe HTML
,如下图所示
第二步:添加构建后操作
添加 Set build description
找到需要添加的项目,点击配置,然后点击构建后操作菜单 。然后增加 Set build description
,如下所示。
设置 description
在Description
框中输入如下html
<img src='http://localhost:8080/me/my-views/view/all/job/${JOB_NAME}/${BUILD_NUMBER}/artifact/app/build/outputs/release/qrcode.png' width=200px height=200px> <br> <a href='http://144.34.230.221:8080/apk/JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk '>点击下载 JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk-</a>
下面分开来看下每个标签的意思。
-
<img>
标签,src
指定的是二维码图片的路径,当然也是需要拼接的。现在我们使用的是本地的二维码图片地址。之后我们会把二维码和apk
包都上传到文件服务器,到时这里会拼接二维码图片在服务器上的地址。关于如何上传apk
和二维码图片到服务器可参考 jenkins 系列 - 安装包上传到 tomcat 并提供下载。
<img src='http://localhost:8080/me/my-views/view/all/job/${JOB_NAME}/${BUILD_NUMBER}/artifact/app/build/outputs/release/qrcode.png' width=200px height=200px>
-
<br>
换行,不用说了吧。 -
<a>
标签 ,地址为apk
在服务器上的下载地址,显示为点击下载 加apk 的拼接名称
,如下。
<a href='http://143.04.220.236:8080/apk/JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk '>点击下载 JenkinsTest-v${APP_VERSION_NAME}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk-</a>
保存后构建就可以达到上图所示的效果。
总结
- 首先是
python
的安装,并增加Pillow
库。 -
qrcode库的代码
clone
下来。 - 配置全局环境变量,增加
PYTHON
环境变量 - 在构建模块中使用脚本生成二维码
- 在构建后操作中增加
Set build description
下一篇
下一篇会说下如何在构建完成后,通过邮件通知相关人员。他们可以通过扫二维码下载,或点击下载。
网友评论