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
网友评论