思路:使用jenkins打包完成后,上传至蒲公英,并调用钉钉机器人发送二维码
这里参考了另一位博主的文章:https://www.jianshu.com/p/eb8ed81a0073
Jenkins配置:
1、源码管理:对应的代码的存储位置,可自行选择
2、构建:
我这里比较简单,直接就是命令构建,(就相当于在Android Studio 下构建包一样)
3、1: 构建后操作 (因为需要上传至蒲公英,这里需要安装蒲公英插件)
下载插件:jenkins -> 系统管理 -> 插件管理,搜索 Upload to pgyer
蒲公英官方文档插件配置介绍 可根据官方文档设置相对应的配置信息
3、2 配置完对应的_api_key等信息后,构建后操作选择 Upload to pgyer with apiV2,因为API 1.0 蒲公英已经不再维护
4、调用钉钉机器人 这里需要安装Groovy Postbuild插件
4、1添加钉钉机器人 获取对应的token:
下载插件:jenkins -> 系统管理 -> 插件管理,搜索 Groovy Postbuild

4、2 构建后操作再选择 Groovy Postbuild,写入脚本
import java.text.SimpleDateFormat
//构建结果
def buildResult = manager. getResult()
//构建用户
def buildUser= "可自定义设置"
//项目名称
def jobName= manager.getEnvVariable("JOB_NAME")
//构建结果页面
def buildUrl= manager.getEnvVariable("BUILD_URL")
//GIT分支
def gitBranch= manager.getEnvVariable("GIT_BRANCH")
//安装密码
def downloadPwd= "123456"
manager.listener.logger.println("项目名称:"+ jobName)
manager.listener.logger.println("构建用户:"+buildUser)
manager.listener.logger.println("构建分支:"+gitBranch)
manager.listener.logger.println("构建结果:"+buildResult)
if(buildResult == "SUCCESS"){
//解析蒲公英上传返回数据
//apk下载地址
apkDownloadUrl = "https://www.pgyer.com/"+ manager.getEnvVariable("buildShortcutUrl")
//apk二维码
apkQrCode = manager.getEnvVariable("appQRCodeURL")
manager.listener.logger.println("apk下载地址"+apkDownloadUrl)
manager.listener.logger.println("apk二维码地址:"+apkQrCode)
dingding("标题","### 【"+jobName+"】构建成功" +
"\n\n构建版本:"+gitBranch+
"\n\n下载地址:\n[下载地址]("+apkDownloadUrl+")" +
"\n\n安装密码:"+downloadPwd+
"\n\n"+
"\n\n构建用户:"+buildUser+
"\n\n构建时间:"+getNowTime()+
"\n\n查看详情:[项目地址]("+buildUrl+")"
)
}else if(buildResult == "ABORTED"){
dingding("标题","### 【"+jobName+"】构建被终止" +
"\n\n构建版本:"+gitBranch+
"\n\n构建用户:"+buildUser+
"\n\n构建时间:"+getNowTime()+
"\n\n查看详情:[项目地址]("+buildUrl+")"
)
}else{
dingding("标题","### 【"+jobName+"】构建失败" +
"\n\n构建版本:"+gitBranch+
"\n\n构建用户:"+buildUser+
"\n\n构建时间:"+getNowTime()+
"\n\n查看详情:[项目地址]("+buildUrl+")"
)
}
//发送钉钉消息
def dingding(p_title,p_text){
manager.listener.logger.println("--------------------------"+p_title+p_text)
def json= new groovy.json.JsonBuilder()
json {
msgtype "markdown"
markdown {
title p_title
text p_text
}
at {
atMobiles([])
isAtAll false
}
}
manager.listener.logger.println("发送钉钉数据:"+json)
def connection = new URL("https://oapi.dingtalk.com/robot/send?access_token=这里填入钉钉机器人的token").openConnection()
connection.setRequestMethod('POST')
connection.doOutput = true
connection.setRequestProperty('Content-Type', 'application/json')
def writer = new OutputStreamWriter(connection.outputStream)
writer.write(json.toString());
writer.flush()
writer.close()
connection.connect()
def respText = connection.content.text
manager.listener.logger.println("钉钉返回结果:"+respText )
}
//获取当前时间
def getNowTime(){
def str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar lastDate = Calendar.getInstance();
str = sdf.format(lastDate.getTime());
return str;
}
保存后,开始构建,打包完成并上传至蒲公英成功后,便可在钉钉收到包的 二维码
版权声明:本文为weixin_45496656原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。