在mac osx 下使用 Jenkins对Android 进行持续集成

在mac osx 下使用 Jenkins对Android 进行持续集成

Jenkins环境搭建

java下载

jenkins依赖Java环境,所以在安装jenkins之前先安装JDK或者JRE。java下载地址下载之后,像普通软件一样安装。

环境变量的配置

安装Java以后,需要把java路径配制到系统环境变量。在mac下配置Java环境变量。

下载并安装jenkins

下载安装可以使用在[]Jenkins官网](https://jenkins.io/)下载mac下的安装包,手动安装。这种方式不推荐使用。原因后面讲。
这里使用brew包管理器下载安装 Jenkins。具体做法:

在命令行输入:brew install jenkins

brew会自动下载并且安装jenkins。使用这中方式的缺点是下载速度慢,不能和使用浏览器下载相比。但是它会吧下载,安装,配置一步到位。可以避免很多坑,作为一个从0开始接触jenkins的菜鸟来说,这些坑尽量避免就避免,所以是一种牺牲时间来避免踩坑的做法。

当brew提示已经成功安装Jenkins,就可以在终端中通过输入:

jenkins

来启动jenkins。启动之后,它会自动打开浏览器。这就是Jinkins的控制台。

题外话:

jenkins是怎么做到持续集成的呢?在没有接触jenkins时,我一直很好奇。后来通过各种咨询得出如下结论:

jenkins本质是一个特殊的http服务器,我们使用Git Push一个commit 到远程服务器,Jenkins通过Git钩子得知服务器有新的提交,就会通过配置的Git仓库路径把新提交的代码pull下来,进行编译,打包,上传等操作。

Jenkins的配置

插件的安装

Jenkins只是提供一个可以进行持续集成的环境,所以在进行持续集成的时候,我们还需要安装各种插件。对于Android来说,我们需要配置3个插件:在http://localhost:8080/ 页面通过点击左侧的 系统管理 –> 管理插件进入插件管理页面,选择 可选插件,进入插件选择页面,我们也可以通过右侧搜索该插件,然后安装。
1. Gradle 插件。搜索gradle即可找到该插件。
2. GIT插件 ,通过可以通过搜索得到。
3. Android Emulator插件。方法同上。

在点击安装以后,jenkins会自动对安装进行排队。等待所有的插件安装完毕,在浏览器地址栏输入:http://localhost:8080/restart或者通过下载页面下部的链接重启jenkins。

配置

配置SDK,JDK路径

在开始构建之前,我们需要配置SDK和NDK的路径。通过 系统管理 –>系统设置 –> Environment variables 来编辑环境变量。
在mac osx 下使用 Jenkins对Android 进行持续集成_第1张图片

创建任务

通过在http://localhost:8080/ 左侧 新建 按钮,进入任务新建页面。
在mac osx 下使用 Jenkins对Android 进行持续集成_第2张图片
选择 构建一个自由风格的软件项目 。点击 OK 。我们就会进入到这个任务的配置页面。

配置源码管理

这里我们选择Git作为版本控制系统,所以这里我们选择git。当我们填写完仓库地址以及对应的用户信息后,选择保存。
在mac osx 下使用 Jenkins对Android 进行持续集成_第3张图片

配置构建环境

由于Android使用Gradle作为构建工具。所以在构建环境下面,点击 增加构建步骤按钮,选择Gralde来构建。
在mac osx 下使用 Jenkins对Android 进行持续集成_第4张图片

下面是对Gradle构建的详细配置:

在mac osx 下使用 Jenkins对Android 进行持续集成_第5张图片

执行

如果你正确的配置了上述几步,那么已经可以使用jenkins来进行构建了。如果你想继续完善,可以配置构建的时机,比如选择什么时候开始构建;我们还可以配置构建后的任务:比如在执行构建成功以后发送email到推送者或者把报错信息通过emila发送给程序员,方便及时修改。这里,我们使用手动执行来代替自动执行。在http://localhost:8080/job/android/configure 页面通过左侧的 立即构建让jenkins执行构建。我们可以在构建任务中选择查看构建时候的控制台输出,方便我们掌握构建进度。
在mac osx 下使用 Jenkins对Android 进行持续集成_第6张图片
下面时我项目中的一个构建成功的截图。
在mac osx 下使用 Jenkins对Android 进行持续集成_第7张图片

踩过的坑

  1. 通过在jenkins官网下载jenkins安装包然后安装,结果在构建的过程中一直报错:SDK location not exits。其实SDK的位置是有的,可能jenkins对这个目录没有权限。后来使用brew来解决。
  2. 我们在使用Android Studio开发的时候,会在项目根目录下创建一个local.properties的文件。这个文件跟本地环境有关,记载了开发所在环境中的sdk和ndk的位置。我们通过git提交的时候,是不需要把这个提交到远程服务器的,因为提交没有意义。gradle会读取这个文件下的sdk以及ndk的位置进行构建,在使用 jenkins进行构建的时候,我们只拉取了代码,gradle并不知道sdk和ndk的位置,所以会报:SDK Not Found,这个时候只需要通过提交配置环境变量就可以解决。
    如果你在学习过程中,遇到问题,可以给我发邮件(地址:[email protected]),可以一起解决。

你可能感兴趣的:(今日总结)