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. 谁在使用GPU?

    nvidia-smi命令可以查看GPU使用情况,但是只能看到占用每个GPU的进程ID.根据进程ID可以得到进程详情,进程详情中包括用户ID,根据用户ID可以获取用户名称,从而知道哪个用户在使用GPU. ...

  2. 批处理(bat)的一些记录

    总览:https://www.jb51.net/article/151923.htm 如何判断空格与回车的输入:https://www.lmdouble.com//113311107.html 设置命 ...

  3. Qt固定窗口大小

    指定大小 this->setMaximumSize(250, 250); 默认大小 this->setMaximumSize(this->width(), this->heig ...

  4. centos7 apache 配置ssl

    因为小程序后台服务器需要是https的,所以这两天赶紧百度了一波什么是https以及怎么将服务器升级为https.虽然网上教程很多但因具体环境可能有差异导致一路遇坑,摸爬滚打了两天终于弄好了.遂记下一 ...

  5. k8s service对象(三)

    概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解Pod,RC等资源对象其实都是为 ...

  6. 2019CCPC 秦皇岛 E.Escape

    传送门 题意: 给出一个\(n*m\)的迷宫,有\(a\)个入口,\(b\)个出口. 现在有\(a\)个机器人都从入口出发,一开始方向默认为下,你可以选在在一些格子上面放置一个转向器,转向器有四种: ...

  7. 1.python进行if条件相等时候的条件

    在我们进行 if == 判断的时候!其中判断的条件: 1:其值是不是一样 3:其类型是否是一样 ###二者少了任何一个都不可以 >>> pwd = 23>>> cc ...

  8. 201871010102-常龙龙《面向对象程序设计(java)》第十周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  9. 201871010109-胡欢欢《面向对象程序设计(java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  10. python-读取txt文本

    import tensorflow as tf import os with open('test_read.txt', 'r') as file: lines = file.readlines() ...