本身動手開發一個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. 發送消息到企業微信羣裏,通知相關如願

發送消息到釘釘等其餘支持聊天機器人的功能是同樣的,感興趣的能夠本身實現如下。

但咱們如今的實現還比較粗糙,下一遍,咱們還會對其進行優化。

相關文章
相關標籤/搜索