使用Jenkins实现Android Apk自动化打包

最近需要实现Jenkins自动打包构建apk,摸索两天后总结一下整个过程。

什么是Jenkins?

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。作为领先的开源自动化服务器,Jenkins提供数百个插件来支持构建,部署和自动化任何项目。

Jenkins的安装方式

Jenkins有两种安装方式:

(1)直接下载安装包,如mac上的pkg,傻瓜式操作。

(2)Tomcat+war包的形式。

我这里使用的是第一种安装方式,一开始我是使用第二种方式的,结果问题一个接一个的冒出来,索性直接使用第一种方式了,有空我再试试第一种方式。

安装Jenkins

https://jenkins.io/download/,根据自己需要下载对应版本的安装包。安装Jenkins前先确保已安装Java 1.8

使用mac的,也可以直接用brew下载,没安装过brew的按下步骤操作

1、安装brew

终端中输入命令

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、将brew添加到环境中

将brew配置到profile中,相当于Windows的添加环境变量

(1)终端输入open .bash_profile,打开profile文件

(2)将/usr/local/bin添加进PATH

BREW = /usr/local/bin
export BREW

(3)终端输入source .bash_profile刷新profile文件

(4)终端输入brew -v 查看brew是否安装成功

3、使用brew安装Jenkins

终端输入brew install jenkins安装Jenkins

4、将Jenkins添加到环境中

安装完成后再次打开profile,将/usr/local/Cellar/jenkins/2.152/bin/jenkins 添加到profile

BREW=/usr/local/bin
JENKINS=/usr/local/Cellar/jenkins/2.152/bin/jenkins
export PATH=${PATH}:${BREW}:${JENKINS}

到此,Jenkins的安装配置就完成了,以后要再启动Jenkins直接在终端输入jenkins就可以启动了

Jenkins基本配置

1、打开浏览器在地址栏输入localhost:8080

第一次会弹出这个界面,打开红色地址就能看到admin登录密码了

2、安装Jenkins插件,有两种选择,选择推荐安装就行了,如果有特殊需要安装的插件,可以后面自己再在Jenkins的插件管理里下载安装

3、安装过程。如果安装过程中有安装失败的,稍后再在插件管理里手动安装就行。

4、安装完成后,创建用户。因为默认额admin登录密码太难记,可以在这创建新用户,也可以跳过。

5、进去Jenkins首页后去系统管理下的插件管理下载两个插件

这个供我们自定义每次构建任务的名称

这个供构建日期参数使用

6、配置Jenkins全局工具地址,添加Java和、Gradle路径

添加Java路径

添加Gradle路径,可以使用AS目录下的Gradle地址

AS项目build.gradle配置

1、首先在项目的gradle.properties配置你想Jenkins动态修改的参数

//apk名称
APP_NAME = testJenkins
//apk版本号
APP_VERSION = 1.0
//是否通过Jenkins打包
IS_JENKINS = true
//打包类型
BUILD_TYPE = debug
//打包时间
BUILD_TIME = 19700101

2、在module的build.gradle添加配置,gradle3.0以后,修改apk名称的方式不一样,这里注意一下。

def getDate(){
    def date = new Date()
    def formatDate = date.format("yyyyMMddHHmm")
    return formatDate
}
android{
    ......
    applicationVariants.all{variant->
        variant.outputs.all {output->
           
            //apk名称
            def apkName
            //打包时间
            def timeNow
            if ("true".equals(IS_JENKINS)){
                timeNow = BUILD_TIME
            }else {
                timeNow = getDate()
            }
            //app-v1.0-release-201811231730.apk
            apkName = APP_NAME+"-v"+APP_VERSION+"-"+variant.buildType.name+"-"+timeNow+".apk"
            variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath+File.separator+"apk")
            outputFileName = apkName
        }

    }
}

创建配置Jenkins任务

前面准备了那么多,接下来就是将我们的任务和项目关联起来了

1、新建任务

Jenkins首页新建任务,输入任务名称,选择构建一个自由风格的软件项目,点击ok

2、添加参数

进入任务配置页后再General模块下勾选参数化构建,添加参数

添加的参数就是之前在AS项目gradle中编写的参数

 

 

这个参数使用的就是上面安装的DATE Parameter插件

3、关联项目

点击General下的advanced高级选项添加AS项目工作空间,不然运行任务的时候Jenkins找不到项目

4、关联Gradle环境

在Build模块下选则Invoke Gradle script,添加gradle脚本版本

Gradle Version选择之前添加的gradle即可

这个添加不添加都行

到这里基本就配置完了,点击保存去首页运行一下任务试试

运行Jenkins任务

进入刚刚创建的项目,点击Build with Parameters

输入选择构建的参数,点击运行

向下面这样就构建成功啦,会在设置的目录里生成apk

不过这样的14、15提示太难看了,看不出具体的构建信息,还记得之前安装的build_setter插件吗?用它就能定义这些提示内容了

进入项目的配置中,在Build Environment设置

保存后再次构建任务试试

总结

ok,到此配置Jenkins自动化打包就完成啦,本次实现的功能很简单,等有时间在研究研究生成apk二维码,供手机扫码下载。

发布了45 篇原创文章 · 获赞 18 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Ever69/article/details/84453896