自己動手開發一個Android持續集成工具5

NO IMAGE

本系列代碼地址github

上一篇,我們已實現了應用的打包和上傳這個流程。這一篇我們接著來實現apk上傳成功後發送消息到釘釘或者企業微信這個功能。

不失一般性,我們用企業微信來實現這個功能。

企業微信提供群機器人的功能,在終端某個群組添加機器人之後,可以獲取到webhook地址,然後開發者用戶按以下說明構造post data向這個地址發起HTTP POST 請求,即可實現給該群組發送消息。下面舉個簡單的例子.具體的使用方式大家可以看官方文檔。

我們現在企業微信中創建一個群,把開發人員和相關測試人員等添加到這個群裡。

添加一個群機器人。企業微信如何添加群機器人

把機器人的webhook地址記錄下來。

接下來我們創建發送消息的任務,代碼如下:


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()
}
}

我們執行測試下這個任務,對應的群裡會收到消息,如下:

自己動手開發一個Android持續集成工具5

接下來,我們就把這個任務和前面完成的流程串起來。

我們在build.gradle中添加如下代碼:


uploadPgyerByApi.finalizedBy(sendWeChatMessage)

這句代碼的意思是在“uploadPgyerByApi” task 執行完成後執行“sendWeChatMessage” task。

然後我們再執行“publishReleaseRelease” task,發現已經完整執行了三個步驟:

  1. 打包應用apk
  2. 上傳應用到蒲公英
  3. 發送消息到企業微信群裡,通知相關如願

發送消息到釘釘等其他支持聊天機器人的功能是一樣的,感興趣的可以自己實現以下。

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

相關文章

DelayedMessage插件實現RabbitMQ延遲隊列

SameSite小識

徹底弄清元素的offsetHeight、scrollHeight、clientHeight…

代碼模板|我的代碼沒有else