本身動手開發一個Android持續集成工具-6

本系列代碼地址 githubandroid

相關資料 gradle in action中英文對照版git

回到目錄程序員

上一篇中,咱們實現了整體流程。但略顯粗糙。今天咱們就對一些細節進行優化。github

如今咱們的工具發送到企業微信中的消息樣式是這樣的:服務器

通過本次優化,咱們發送到企業微信中的樣式是這樣的:微信

之因此改爲這樣,主要有如下幾個緣由:markdown

  1. 看着漂亮:顏值就是戰鬥力
  2. 顯得專業:畢竟是程序員,這個B仍是得裝一下的
  3. 方便:相關人員應該知道的信息都在這裏了,下載地址,下載密碼,發佈的版本,發佈的服務器環境等,一看便知,不須要再通知測試人員和其餘相關人員了。

前兩點純屬扯淡,第三點確實有必要。因此接下來咱們來實現它。app

咱們找到「sendWeChatMessage」 task,而後找到生成markdown消息的代碼,以下:工具

def markdownText = """ #### 一個新的測試包已經上傳 """

複製代碼

改爲以下:post

def markdownText = """ # 一個新的測試包已經上傳 > - versionName: ${android.defaultConfig.versionName} > - versionCode: ${android.defaultConfig.versionCode} > - 服務器: 線上服務器 > - 密碼: 123456 > - 下載地址: [https://www.pgyer.com/KIqO](https://www.pgyer.com/KIqO) """

複製代碼

「versionName」和「versionCode」這兩個參數能夠在「android.defaultConfig」中獲取。「密碼」和「下載地址」可從蒲公英獲取。關鍵是這個服務器的參數,須要根據咱們具體執行的是哪一個task來肯定。好比咱們如今執行的是「publishReleaseRelease」這個任務,打的就是線上服務器的包。這就涉及到task之間共享數據。

stackoverflow上提供了兩種方式,感興趣的能夠詳細瞭解下。咱們在這裏直接使用全局變量的方式來實現。在build.gradle中定義一個變量「serverName」,以下:

......
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
//定義變量
def serverName = "默認服務器"
......

task publishReleaseRelease(dependsOn: "assembleRelease") {
    ......
    doLast {
        println "publishReleaseRelease doLast called......"
        serverName = "線上服務器"
    }

    finalizedBy(uploadPgyerByApi)
}

task sendWeChatMessage() {
    doLast {
    ......
 > - 服務器: ${serverName}
    ......
    }
}
......

複製代碼

這樣咱們在不一樣的任務中爲「serverName」指定不一樣的服務器名就能夠了。

而後別忘了,蒲公英上的更新說明和歷史記錄裏咱們也應該把對應的服務器信息記錄下來,方便之後查找,以下圖的兩個位置:

一樣的,咱們利用上面的「serverName」參數,修改蒲公英上傳時候的參數以下:

這樣咱們再上傳的時候就會在蒲公英中記錄下對應版本的服務器信息,以下:

好了,到這一步,咱們的工具基本上就像那麼一回事了,能夠用了。

相關文章
相關標籤/搜索