CentOS 64 位机器安装配置 Jenkins 集成编译 Android 项目

之前一直想在公司搭建一个集成编译的环境,一直没能成行,这次终于着手去做了,发现之前的 Hudson 已经演变成了如今的 Jenkins,关于 Oracle 跟各个开源社区以及其他厂商的一些关于商标的纷争真的很有意思,我觉得未来有可能的话,真的可以专门写一些关于这个话题的东西。具体可以参考 wikipedia 上的 介绍

因为 Jenkins 是基于 Java Servlet 实现的,所以需要依赖于某个 Servlet Container 来运行,我选择的是 Apache Tomcat。Tomcat 也是基于 Java 实现的,那么开始第一步吧。

第一步 安装 SDK

自行下载 JDK,安装配置环境变量,如下:
[bash light=”true”]
export JAVA_HOME=/usr/local/jdk1.6.0_29
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
[/bash]

第二步 安装配置 Tomcat

下载 tomcat 安装包,直接解压,配置环境变量:
[bash light=”true”]
export CATALINA_HOME=/root/apache-tomcat-7.0.33
[/bash]
在 CentOS 的/etc/sysconfig/iptables 配置文件中加入规则:

通过$CATALINA_HOME/bin/startup.sh 启动 tomcat,找个浏览器试试能否访问,http://your_centos_server_ip:8080

确认 tomcat 能正常访问之后,开始第三步

第三步 安装配置 Jenkins

Jenkins 的主页 下载 Jenkins 的 war 文件,将该文件拷贝至$CATALINA_HOME/webapps 目录下,tomcat 会自动将 war 文件解压并部署,找个浏览器试试能否访问这个地址 http://your_centos_server_ip:8080/jenkins,如果可以的话那么 Jenkins 就算是部署好了。

第四步 配置 Android SDK 和 NDK 环境

这一步可能会稍微多一些,可以参考我的这篇文章,CentOS 64 位机器配置 Android SDK 和 NDK 环境

第五步 创建一个 Jenkins 的 Job

完全按照 Jenkins 的提示和帮助一步步进行下午,非常简单。

  1. 给 Project 设置名称
  2. 配置获取最新代码的方式,Jenkins 目前自带了 CVS 和 SVN 的插件,如果你的代码是通过 git 来管理的,只需要安装一个 git 的插件即可,Jenkins 有非常丰富的插件,Jenkins => Manage Jenkins => Manage Plugins,进入插件管理页面,打开 Available 的 Tab 页面,在 Filter 中输入 git,然后找到 Jenkins GIT plugin,勾选前面的复选框,之后点击页面下方的 Download now and install after restart,让它自己安装然后重启吧,重启之后就可以配置通过 git 来获取代码了
  3. 设置编译触发器规则,应该是完全和 Linux cron 的规则一致,可以 google 之。
  4. 配置如何编译方法,在服务器上我们肯定是脱离 ADT 环境的,通常我们会使用 Ant 来进行编译,自行下载并配置 Ant 的环境变量,确保 ant 命令可以正常使用
  5. 先通过 android 命令更新当前需要编译的项目,确保 ant 能找到正确的 sdk 路径和其他的配置,需要编译 release 包的话,可以在 project.properties 中配置好用于签名的 keystore 文件,具体可以参考 这篇文章 ,然后在 Jenkins 中配置 shell 中输入 android update project -p $WORKSPACE -n 工程名 -t 编译目标
  6. 配置 Ant 编译目标为 release
  7. 点击 Save 之后,回到 Job 的首页面,点击 Build Now,开始编译吧。可以通过查看 Console Output 来看所有编译的输出信息,有错就一一排查吧。