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/

(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)

生成的二维码如下:

Jenkins生成APK链接的二维码的更多相关文章

  1. js生成带参的二维码

    最近项目中有需求生成带参的二维码,考虑过用JAVA后台生成返回前端展示,后面了解到用jquery的qrcode.js插件可以很好现实 引入js: require.config({ baseUrl : ...

  2. .NET生成带Logo的二维码

    使用ThoughtWorks.QRCode生成,利用这个库来生成带Logo的二维码(就是中间嵌了一个图片的二维码),直接见代码: HttpContext context = HttpContext.C ...

  3. 微信公众号生成带参数的二维码asp源码下载

    晚上闲着没事,一个朋友联系,让帮忙写一个微信公众号利用asp生成带参数的二维码,别人扫了后如果已经关注过该公众号的,则直接进入公众号里,如果没关注则提示关注,关注后自动把该微信用户资料获取到并且保存入 ...

  4. PHP生成有背景的二维码图,摘自网络

    有一天产品MM高高兴兴的走过来,兴奋的和我分享她想出来的一个新的idea. 产品MM:你看这个(她指了指她的手机),一脸兴奋 那是一张带着二维码的图片,内容如下: 她接着说:如果我们的分销也能做成类似 ...

  5. Java生成带logo 的二维码

    这个工具类主要实现了两点功能: 1. 生成任意文链接的二维码. 2. 在二维码的中间加入图像. 主要实现步骤: 第一步: 导入QR二维码3.0 版本的core包和一张jpg图片(logo). core ...

  6. 利用WPF生成Q币充值二维码——扫码登录篇

    一.前言 虽然腾讯官方不支持使用二维码充值Q币,但对于喜欢钻研的人来说这不是问题,本文利用WPF技术讲解从扫码登录到生成Q币充值二维码的一整套解决方案. 因为充值Q币需要先用QQ号登录官网.所以我们首 ...

  7. Vue生成分享海报(含二维码)

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 功能需求: 海报有1张背景 ...

  8. C#生成带logo的二维码

    带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类   QRCode ...

  9. .NET使用ZXing.NET生成中间带图片的二维码

    很久之前就有写这样的代码了,只是一直没记录下来,偶然想写成博客. 把之前的代码封装成函数,以方便理解以及调用. 基于开源的 ZXing.NET 组件,代码如下: 先添加对ZXing.NET的引用,然后 ...

随机推荐

  1. 扫描不同域下的AD账户进行删除

    public ResultModel GetEntryOneToDel(string sAMAccountName) { bool del=false; ResultModel result = ne ...

  2. charles代理设置与数据劫持

    1.安装charles,点击帮助——ssl代理——在移动设备或远程浏览器上安装charles root证书,看到如下界面: 2.在手机保证和电脑连接同一个wifi的前提下,开启手机代理,输入服务器地址 ...

  3. maven 学习---转换基于Maven的Web应用程序支持Eclipse IDE

    在上一节教程中,使用Maven创建了一个Web应用程序.这里有一个指南,告诉你如何转换Web应用程序到Eclipse IDE支持的形式. 注意,通过WTP工具Eclipse IDE支持Web应用程序, ...

  4. 项目进程中input的onblur事件挂不上去,失效问题解决记录

    一开始直接在js文件中写 var n=document.querySelector("input"); n.onblur=funcition(){ ///事件过程吧啦啦啦 }; 事 ...

  5. Centos7部署分布式文件存储(Fastdfs)

    目录 FastDFS介绍 楼主目标:前可H5撩妹,后可Linux搞运维 环境:Centos7 软件: 软件链接: 安装前所有准备,上传软件到Centos7上的/opt的目录下 安装依赖软件和类库(安装 ...

  6. 基于 webdriver 的测试代码日常调试方python 篇

    看到论坛有人写了JAVA的测试代码日常设计,就给大家分享一下偶自己平时是如何测试测试代码的.主要基于python语言.基于 webdriver 的日常调试在 python交互模式下非常方便,打开pyt ...

  7. VIJOS-P1325 桐桐的糖果计划

    VIJOS-P1325 桐桐的糖果计划 JDOJ 1432 桐桐的糖果计划 https://neooj.com/oldoj/problem.php?id=1432 Description 桐桐很喜欢吃 ...

  8. JDOJ 1139 水仙花数

    JDOJ 1139: 水仙花数 https://neooj.com/oldoj/problem.php?id=1139 Description 打印出所有"水仙花数",所谓&quo ...

  9. LG5357 「模板」AC自动机(二次加强版) AC自动机+fail树

    问题描述 LG5357 题解 不是fail树的AC自动机复杂度是假的. 把AC自动机搞出来,建立Trie树,树上爆搜一遍就好了. \(\mathrm{Code}\) #include<bits/ ...

  10. MySQL单表查询 条件查询,分组

    目录 1 where 条件查询 between like not in 2 group by 分组 聚合函数:max min sum avg count 3 having 过滤 4 distinct ...