jenkins Android windows 打包部署

项目示例

在Jenkins首页,点击“新建Item”

avatar

进入到创建页面

avatar

点击“确定”后进入到基本模板配置页面。

avatar

General

General 选项卡可以配置项目描述,以及基本的配置。这里需要着重注意的checkbox项是"This project is parameterzed"。

选中后可以定义变量,这些变量在编译过程中,jenkins会将这些变量值侵入到项目的gradle中,作为项目的全局属性被访问——需要注意的是要在项目的gradle.properties中定义对应的变量——将变量的值替换gradle.properties中相应变量的默认值。

avatar
avatar

在参数配置中定义了BUILD_TYPE,APK_NAME,VERSION_NAME,BUILD_TIME,IS_JENKINS。
在项目发起编译时,可以看到这些定义的变量及其描述。


avatar

发起编译前,还需要确保在项目的gradle.properties中同样定义了对应需要使用的变量,这样在jenkins进行编译时,这些定义的变量值才能起作用。

IS_JENKINS = false

BUILD_TIME = ''

APK_NAME = ''

VERSION_NAME = 1.0.0

这里定义了项目中需要使用的变量,在jenkins编译时,这些变量值会被jenkins中定义的同名变量值替换。gradle.properties中定 义的变量也会在项目的gradle文件中被引用。

// 定义的versionName
versionName VERSION_NAME

// 定义编译生成的apk名格式
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def newName

        if ('true' == IS_JENKINS) {
            println("jenkins build ==> $BUILD_TIME")
            newName = "$APK_NAME-v$VERSION_NAME-$BUILD_TIME-${variant.buildType.name}-unsigned.apk"
        } else {
            if ('debug' == variant.buildType.name) {
                newName = "$APK_NAME-v${rootProject.android.versionName}-${rootProject.android.versionCode}-debug.apk"
            } else {
                newName  = "$APK_NAME-v${rootProject.android.versionName}-${rootProject.android.versionCode}-${variant.buildType.name}.apk"
            }
        }

        output.outputFileName newName
    }

}

这样在发起编译后,最终jenkins编译生成的apk文件名即是IS_JENKINS分支的输出名。

源码管理

源码管理 项选择源码配置工具。
因为我们的源码管理工具是git,因此选择git,并且在对应的配置填写源码url等信息。

avatar

选择Git方式后,填写“Repository URL”gitlab上project的http地址,“Credentials”初始需要点击有责“添加”增加凭据。在“Branch to build”中填写需要编译的分支。

构建触发器

构建触发器 中可以设置触发编译的条件。

avatar

这里设置了每隔30分钟拉取一次代码并且编译。也可以根据需要,根据对应的格式填写需要触发的条件。

构建

构建 配置需要执行的操作等。在构建配置中,主要选择编译使用的gradle版本及执行的任务命令,选择签名,已经可能需要签名后执行的命令(配置块的顺序不可更改,一定是gradle编译,后签名,再针对签名后的文件进行操作,否则会造成奇怪的问题。)

Invoke Gradle script 块中选择编译的Gradle版本,以及在tasks填写执行的任务。

avatar

在选择编译gradle版本中,有一点特别需要注意,点击“高级”,在展开的配置项中,勾选 ”
Pass all job parameters as Project properties”项,让在 “General”项中配置的参数可以在编译时准确将值替换到项目gradle.properties文件中的对应变量的值。否则在编译时你会发现,即使编译成功了,但是产生的APK文件名不是想要的输出。

你可能感兴趣的:(jenkins Android windows 打包部署)