本身动手开发一个Android持续集成工具-5

本系列代码地址 githubhtml

相关资料 gradle in action中英文对照版git

回到目录github

上一篇,咱们已实现了应用的打包和上传这个流程。这一篇咱们接着来实现apk上传成功后发送消息到钉钉或者企业微信这个功能。web

不失通常性,咱们用企业微信来实现这个功能。json

企业微信提供群机器人的功能,在终端某个群组添加机器人以后,能够获取到webhook地址,而后开发者用户按如下说明构造post data向这个地址发起HTTP POST 请求,便可实现给该群组发送消息。下面举个简单的例子.具体的使用方式你们能够看官方文档。api

咱们如今企业微信中建立一个群,把开发人员和相关测试人员等添加到这个群里。微信

添加一个群机器人。企业微信如何添加群机器人markdown

把机器人的webhook地址记录下来。app

接下来咱们建立发送消息的任务,代码以下:post

task sendWeChatMessage(){
    group "publish"
    doLast{
        def robotUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bece9001-ab3e-44f2-913e-5560a9633de2"

        def markdownText = """ #### 一个新的测试包已经上传 """
        def builder = new JsonBuilder({
            msgtype "markdown"
            markdown {
                content markdownText
            }
        })


        URL url = new URL(robotUrl)
        URLConnection connection = url.openConnection()
        connection.setDoInput(true)
        connection.setDoOutput(true)
        connection.setUseCaches(false)
        connection.setRequestMethod("POST")
        connection.setRequestProperty("Content-Type", "application/json")

        connection.connect()

        OutputStream outStream = connection.getOutputStream()

        outStream.write(builder.toString().getBytes())

        InputStream inStream = connection.getInputStream()

        Scanner scanner = new Scanner(inStream)

        while (scanner.hasNextLine()) {
            println scanner.nextLine()
        }
        outStream.close()
        inStream.close()
    }
}

复制代码

咱们执行测试下这个任务,对应的群里会收到消息,以下:

接下来,咱们就把这个任务和前面完成的流程串起来。

咱们在build.gradle中添加以下代码:

uploadPgyerByApi.finalizedBy(sendWeChatMessage)

复制代码

这句代码的意思是在“uploadPgyerByApi” task 执行完成后执行“sendWeChatMessage” task。

而后咱们再执行“publishReleaseRelease” task,发现已经完整执行了三个步骤:

  1. 打包应用apk
  2. 上传应用到蒲公英
  3. 发送消息到企业微信群里,通知相关如愿

发送消息到钉钉等其余支持聊天机器人的功能是同样的,感兴趣的能够本身实现如下。

但咱们如今的实现还比较粗糙,下一遍,咱们还会对其进行优化。

相关文章
相关标签/搜索