美文网首页
jenkins Android windows 打包部署

jenkins Android windows 打包部署

作者: ChenXinFei | 来源:发表于2020-05-20 18:03 被阅读0次

    项目示例

    在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 打包部署

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