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 qrcodepip 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 sysdata=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生成APP二维码下载链接相关推荐

  1. vue将qrcodejs生成的二维码下载到本地

    vue将qrcodejs生成的二维码下载到本地 dom结构如下 <div class="qr-code "id="qr-code"></div ...

  2. vue生成app二维码,并扫码下载app

    文章目录 项目需求 开发 web官网下载页的开发 web官网地址生成下载二维码 项目需求 公司要做一个web官网的下载页面,功能是微信扫码可以直接下载Ios手机端app.Android手机端app.及 ...

  3. Jenkins自动化打包生成二维码下载链接

    在自动化打包流程中,Jenkins是一个不错的工具,可以帮助我们省去很多的打包和部署问题,解放了双手.通常,使用Jenkins 打包好的 apk 文件,我们可以上传到tomcat或者httpd所在服务 ...

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

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

  5. APP二维码下载 自动跳转

    如 http://a.app.qq.com/o/simple.jsp?pkgname=com.cn.sengo.app

  6. ttkefu微信二维码对话链接如何生成?

    ttkefu可以生成微信二维码对话链接,让客户扫码就可以对话吗? 答:这个是可以的! 具体设置,请登录电脑端软件,点击右上方的 [设置]-[获取代码]-找到相应的风格后,右侧最下方有个B代码.B代码是 ...

  7. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载

    java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成.解析.下载 自己用java搭建一个属于自己APP二维码合成网站.我的思路是这样的: 1.用户在前台表单提交APP的IOS和Andro ...

  8. 生成对应的二维码下载app

    最近做到一个项目:手机扫描二维码下载,可是android和ios要对应不停的下载地址,本来以为还要自己写js和页面的,没想到不需要,网上有现成的,地址是:https://www.hotapp.cn

  9. 微信环境中扫描二维码下载APP(APK)文件的解决方案-自动跳转到手机默认浏览器(AppStore)打开

    很多朋友的APP的下载推广以二维码的形式在微信中进行推广,但是微信中是屏蔽掉了扫一扫二维码下载APP文件的方式.但是微信最为一个最大的社交平台,为了自身的利益,屏蔽掉了所有APK的下载链接.我们要怎么 ...

最新文章

  1. react-redux的Provider和connect
  2. 人类血液中首次发现微塑料颗粒,饮料瓶塑料袋化妆品都是来源
  3. 我的2015学习总结及2016的技术规划(2016.02)
  4. PPT 下载 | 数据治理中的一些挑战与应用
  5. 【Python】Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!
  6. 【C语言学习】国嵌21__指针基础
  7. 学习ASP.NET MVC的资料推荐
  8. MySql中创建用户以及设置其操作权限
  9. Debug与Release版本的区别详解
  10. Winform中 ListView控件的使用
  11. c语言中.cpp英文全称,.cpp与.c的区别
  12. 凹凸贴图和法线贴图的区别
  13. 蓝牙5.1定位--蓝牙定位信标--新导智能
  14. threeJS 创建逼真海洋落日
  15. Swift 属性与方法
  16. 平板电脑软件测试招聘,【华为工资】软件测试工程师待遇-看准网
  17. Springboot整合FreeMarker
  18. C练题笔记之:Leetcode-200. 岛屿数量
  19. 用c++模拟直线插补和圆弧插补
  20. ios 热更新jsPatch

热门文章

  1. linux-进程间通信
  2. 不管你学的是什么专业,你都应该多少懂些管理学的东西之【鳄鱼法则】【鲇鱼效应】...
  3. VMware新建OracleLinux6.5虚拟机
  4. qRT-PCR 注意事项
  5. 深入了解OpenGL——颜色混合
  6. javascript设计模式-原型模式(prototype pattern)
  7. python自动化系列之python操作pptx文件
  8. 基于QT技术实现无线点菜系统设计与实现
  9. 青岛大学计算机二级考试,2017年3月青岛大学计算机等级考试准考证打印时间
  10. 从两家主流报表工具的报jia看报表行业的报jia水深-----常用报表工具对比---主流报表对比