Jenkins生成APP二维码下载链接

27 篇文章 0 订阅
3 篇文章 0 订阅

Jenkins 打包好的 apk 文件,上传到tomcat或者httpd所在服务器,并且生成对应URL二维码,进行扫码下,还可以配置到钉钉机器人模板消息通知中。

一、Jenkins配置

(一)Jenkins插件安装

Jenkins搜索插件 description setter 并安装插件重启jenkins

(二)修改标记格式器

1.Manage Jenkins => Configure Global Security =>Markup Formatter 中默认的Plain text 修改为 Safe HTML

系统管理》全局安全配置》标记格式器》纯文本改为Safe HTML

(三)jenkins 配置全局环境变量

Manage jenkins-->Config System
设置全局环境变量 PYTHON,值为你的python3 的位置,一般为 bin下的python文件的路径。

(四)二维码生成

【Nodejs】

1.编写JavaScript脚本

qr_test.js

//需要下载生成二维码依赖
var qr = require('qr-image'); 
//文件操作依赖
var fs = require('fs'); 
// 接收命令行参数
let arguments = process.argv.splice(2);	// 参数数组
var stringUrl = arguments[0]; // 获取arg1 即:被转化成二维码内容的字符串,比如:apk下载地址
var saveQrImageUrl=arguments[1];  // 获取arg2 即:二维码图片生成后保存路径
var imageFormat= arguments[2];  // 获取arg3 
var jobName= arguments[3];  // 获取arg4
var buildNumber= arguments[4];  // 获取arg5
// 生成二维码
var code = qr.image(stringUrl, { type: `${imageFormat}`, size: 10 });
console.log(code);
// 生成本地文件
var pic = code.pipe(fs.createWriteStream(`${saveQrImageUrl}/${jobName}_${buildNumber}.${imageFormat}`));
// 监听错误事件
pic.on('error', (err)=> {
	console.log(err);
});
// 监听完成事件
pic.on('finish', ()=> {
	console.log('二维码生成完毕');
});

 假设:

构建打包生成的apk、ipa存放在/home/jenkins/workspace/appBuild/test.apk

生成二维码脚本qr_test.js存放在/var/jenkins_home/workspace/rq_make

node qr_test.js "/home/jenkins/workspace/appBuild/test.apk" "/var/jenkins_home/workspace/rq_make" "png" ${JOB_NAME} ${BUILD_ID}

脚本需要传入两个参数

第一个参数:下载地址字符串,即jenkins构建打包生成的apk或ipa文件;

第二个参数:字符串转为二维码图片保存的路径;

第三个参数:二维码图片格式

第四个参数:jenkins job名称,用于二维码文件名称

第五个参数:构建number,用于二维码文件名称

Nodejs生成二维码图片文件_u013302168的博客-CSDN博客https://github.com/liyinchigithub/qr_makehttps://github.com/liyinchigithub/qr_maketest2.js//需要下载生成二维码依赖var qr = require('qr-image'); //文件操作依赖var fs = require('fs'); // 接收命令行参数let arguments = process.argv.splice(2);// 参数数组var url_string = argumehttps://blog.csdn.net/u013302168/article/details/121461813

【Python】

Window环境

1.安装Python

安装Python(3.7.5版本)到电脑上,例如在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)

脚本需要传入两个参数

第一个参数:下载地址字符串,即jenkins构建打包生成的apk或ipa文件;

第二个参数:字符串转为二维码图片保存的路径;

4.jenkins中调用脚本生成二维码

windows批处理文件

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指定目录下(需要开放tomcat端口)

(5)调用python脚本,生成二维码图片

(6)打印二维码信息到log中,供后面的步骤使用

5.jenkins job 在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)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liyinchi1988

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值