本身动手开发一个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”参数,修改蒲公英上传时候的参数以下:

这样咱们再上传的时候就会在蒲公英中记录下对应版本的服务器信息,以下:

好了,到这一步,咱们的工具基本上就像那么一回事了,能够用了。

相关文章
相关标签/搜索