Android自动打包,调用钉钉机器人发送二维码

思路:使用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![]("+apkQrCode+")"+
            "\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版权协议,转载请附上原文出处链接和本声明。