在自动化打包流程中,Jenkins是一个不错的工具,可以帮助我们省去很多的打包和部署问题,解放了双手。通常,使用Jenkins 打包好的 apk 文件,我们可以上传到tomcat或者httpd所在服务器,然后生成对应URL二维码供他人扫描。

当然,我们还可以配置到钉钉机器人模板消息通知中,也可以使用Jenkins生成二维码供他人下载,需要怎么做呢?

1,安装插件

打开Jenkins的管理员系统,然后搜索插件【 description setter 】,安装该插件并重启jenkins。

2,修改标记格式器

依次点击【Manage Jenkins】->【Configure Global Security】->【Markup Formatter】 中默认的“Plain text ”修改为 Safe HTML。

3,配置全局环境变量

依次选择【Manage jenkins】->【Config System】设置全局环境变量 PYTHON,值为python3 的安装位置,一般为 bin下的python文件的路径。

4,编写二维码脚本

4.1 Node脚本配置

编写JavaScript脚本用于生成二维码,生成的源码可以参考:Node.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,那么使用上面的脚本生成二维码就存放在/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}

上面脚步中有几个参数,需要根据自己的情况进行配置:

  • 参数1:下载地址字符串,即jenkins构建打包生成的apk或ipa文件;
  • 参数2:字符串转为二维码图片保存的路径;
  • 参数3:二维码图片格式;
  • 参数4:jenkins job名称,用于二维码文件名称;
  • 参数5:构建number,用于二维码文件名称;

4.2 Python脚本配置

首先,需要你安装了Python环境并配置了环境变量。然后,安装Python二维码插件,安装的命令:

  pip install qrcodepip install Image

然后,编写python生成二维码图片的脚本。

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

上面脚本需要两个参数:

  • 参数1:下载地址字符串,即jenkins构建打包生成的apk或ipa文件;
  • 参数2:字符串转为二维码图片保存的路径;

然后,我们在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中,供后面的步骤使用。

接下来,jenkins job 在【Add post-build aciton】中选择添加【set build description】,比如添加下载效果。



最后,点击构建,构建完成之后就会自动输出一个下载的二维码,如下:

当然,我们还可以将打包后的二维码发送到钉钉和企业微信群,本文不做介绍。

Jenkins自动化打包生成二维码下载链接相关推荐

  1. Jenkins生成APP二维码下载链接

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

  2. App Store 生成二维码下载

    1.确认链接 1. 打开七麦数据 2.搜索想要生成二维码的app名称,以学习强国为例 3.点击左上角的APPID 4.复制链接保存 如:https://apps.apple.com/cn/app/id ...

  3. 免费生成二维码API 链接生成二维码,方便又快捷

    这个API是有墨画家族的墨画API提供的 我个人觉得挺好用的,最重要的是他完全免费 下面是关于如何接入的: 接入代码: <imgsrc="https://api.mohuajz.top ...

  4. js 生成二维码 下载到本地

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  5. 安卓app,iOS二维码下载链接FIR

    企业APP开发出来以后,需要放到互联网上面推广. 现推荐一个比较好用的企业APP管理网站http://fir.im/. 1.先去http://fir.im/官网上面注册一个账号. 2.上传你的安卓ap ...

  6. java生成二维码以及链接邀请

    <img src="/cn-user/inviter-code-image.html?width=130&inviterCode=<s:property value=&q ...

  7. iOS - 上架的APP 生成二维码下载

    1. 首先打开苹果App Store商店进入到里面,找到需要打开链接地址的应用程序,例如:百度. 2. 在App Store商店里面先点击一下应用程序图标,再按一下-分享按钮. 3. 接着选择分享AP ...

  8. 小程序前端生成二维码的链接并携带参数

    https://blog.csdn.net/impossible1994727/article/details/102463046/ 这种方式要利用一个插件(https://github.com/ad ...

  9. vue生成二维码并下载

    vue生成二维码图片,这里使用的是qrcode.js 这个插件 1.下载插件 npm install --save qrcodejs2 2.组件内使用 <template>   <B ...

最新文章

  1. 2022-2028年中国工业4.0深度调研及投资前景预测报告(全卷)
  2. html5 css3雪花效果,HTML5 | CSS3水晶皇冠雪花形状
  3. 2008春节长白山哈尔滨雪乡游
  4. 《剑指offer》包含min函数的栈
  5. nginx 1.8.1安装使用
  6. 病毒行为分析初探(三)
  7. 浅谈 SSD,eMMC,UFS
  8. python中spider的用法_python网络爬虫 CrawlSpider使用详解
  9. 以软件开发生命周期来说明各种测试的使用情况
  10. RoboMaster电机驱动
  11. OpenCV --- CAMShift对象跟踪
  12. 《软件工程》第6章体系结构设计
  13. 修改mysql的authen_MySQL连接抛出Authentication Failed错误的分析与解决思路
  14. 5. 位操作指令 AND,ORR, TST,BIC
  15. oracle 9i 启动监听报错误 TNS-12555: TNS:permission denied 解决
  16. Android之设备加密
  17. 乐高机器人EV3的PID巡线控制——附源程序
  18. 【解决方案】LaTeX插入svg图片
  19. 架构训练营作业4-千万级学生管理系统的考试试卷存储方案
  20. 游戏设计/开发的出发点——追根溯源

热门文章

  1. WebSphere7 XA 数据源配置问题
  2. C语言 打印2的n次方
  3. 蜗店SaaS系统功能介绍
  4. phpstorm注册码 激活 授权码 License server
  5. 基于tiny4412的u-boot移植(二)_ git clone
  6. 铁甲小宝像车轮的是什么机器人_铁甲小宝里所有机器人的名字和绝招
  7. 从1到无穷大—机器学习篇
  8. A. Integer Points
  9. 为什么Excel文件打开后全部格式都…
  10. dlib android版本号,dlib-android