美文网首页
Jenkins 自动打包过程(Android)

Jenkins 自动打包过程(Android)

作者: flu鲁少 | 来源:发表于2021-02-04 19:13 被阅读0次

    1. 安装jenkins 环境(跳过)

    2. Android studio 配置参数

    1. gradle.properties 添加全局参数 用于jenkins 调用
    VERSION_NAME = 1.5.1
    VERSION_CODE = 1510
    Channel =
    BuildType = 
    
    2. build.gradle 使用参数替换

    版本号替换:

    android {
        defaultConfig {
            applicationId "com.flushao.demo"
            // 往 jenkins 中传递版本,项目需要本地打包的话修改gradle.properties的默认参数
            versionCode Integer.parseInt(project.VERSION_CODE)
            versionName project.VERSION_NAME
        }
    }
    

    打包路径替换:

    applicationVariants.all { variant ->
            def buildType = variant.buildType.name
            def fileName
            def createTime = new Date().format("YYYY-MM-dd-HHmmss", TimeZone.getTimeZone("GMT+08:00"))
            if (IS_JENKINS){
                variant.getPackageApplicationProvider().get().outputDirectory = new File("/Users/jenkins/demo/"+VERSION_NAME+"/debug")
                if (buildType == "release") {
                    variant.getPackageApplicationProvider().get().outputDirectory = new File("/Users/jenkins/demo/"+VERSION_NAME+"/release")
                }
            }
            variant.outputs.each {
                if (buildType == "release") {
                    fileName = "Demo_${variant.productFlavors[0].name}_"+VERSION_NAME+"_"+VERSION_CODE+"_${createTime}_${buildType}.apk"
                    it.outputFileName = fileName
                }
            }
        }
    

    2. Jenkins 配置

    1. 参数配置

    配置参数

    需要传递的参数名一定要和上面 gradle.properties 配置的几个参数一样
    渠道和代码分支等固定的参数 最好要用 Choice Paramter 来管理
    jenkins自身引用这些变量的方式为: $+名称

    如 $branch

    2.配置远端代码

    这里以 gitlab 为例,如果前面配置了代码分支的变量

    配置 git 地址

    3.Build

    在Build里面添加一个 Invoke Gradle script

    Gradle 命令

    这两行语句是 gradle 执行打包的命令,其中${Channel}${BuildType} 是我们前面配置的渠道和构建类型
    如 app:assembleOppoRelease 是在多渠道打包的时候打出一个 productFlavors 为 oppo 的 release 包。如果${Channel}穿的是空的,则会把 productFlavors 配置的全部渠道的包都打出来

    app:clean
    app:assemble${Channel}${BuildType} --stacktrace
    

    相关文章

      网友评论

          本文标题:Jenkins 自动打包过程(Android)

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