美文网首页
【Gradle Task开发】FIR上传脚本(cURL方式、关联

【Gradle Task开发】FIR上传脚本(cURL方式、关联

作者: JeahWan | 来源:发表于2020-10-12 18:33 被阅读0次
//dependsOn关联打包任务 即执行上传前先打包
task uploadFir(dependsOn: ['assembleDebug']) {
    def fir_api_token = "fir后台的api token"
    doLast {
        println "即将上传到fir..."

        //获取fir上传凭证的各个字段
        def appInfo = ("curl -X POST -d type=android&" +
                //获取app applicationId
                "bundle_id=$project.android.defaultConfig.applicationId&" +
                "api_token=$fir_api_token " +
                "http://api.bq04.com/apps").execute().text

        //json解析对象拿到的是Map, 集合对应的是array, 按照这个规则取出我们需要的数据
        def appInfoBean = new groovy.json.JsonSlurper().parseText(appInfo)
        def key = appInfoBean["cert"]["binary"]["key"]
        def url = appInfoBean["cert"]["binary"]["upload_url"]
        def token = appInfoBean["cert"]["binary"]["token"]

        //执行上传命令 注意apk路径不能包含中文、空格
        //applicationVariants[0]对应的是某个buildType 具体可打印查看 默认0为debug 1为release
        def apkFile = project.android.applicationVariants[0].outputs.first().outputFile
        def upload = ("curl -X POST --form file=@$apkFile" +
                " -F token=$token" +
                " -F key=$key" +
                //git提交次数 作为测试包版本后缀
                " -F x:version=$project.android.defaultConfig.versionName" 
+ "." + ("git rev-list --count HEAD").execute().text +
                " -F x:build=$project.android.defaultConfig.versionCode" +
                " -F \"x:changelog=" + 
(("git log --no-merges --pretty=format:%s_____by__%cn<br> HEAD -5")
.execute().text).replace("\n", "") + "\"" + " $url")
        println upload
        upload.execute().text
        println "上传完成"
    }
}

说明:

1、x:version参数使用了git rev-list --count HEAD获取当前分支提交次数,方便测试人员区分手中已安装的是否为最新包;app内可以通过buildType判断测试环境下拼接此版本号 用于与fir版本对比
2、x:changelog参数使用git log --no-merges --pretty=format:%s_____by__%cn
HEAD -5命令拿到git最新的五次提交日志,具体格式可自定义 参考git log命令(注意该参数必须用“”包裹 否则影响curl参数识别及换行)

注意:

curl参数在windows环境下会发生中文乱码 需要修改系统编码:
控制面板->时钟和区域->区域->管理->更改系统区域设置->勾选使用utf-8支持 重启即可

效果:

微信截图_20201012182614.png

相关文章

网友评论

      本文标题:【Gradle Task开发】FIR上传脚本(cURL方式、关联

      本文链接:https://www.haomeiwen.com/subject/hcjppktx.html