持续集成
CI/CD(Continuous Integration/Continuous Delivery)是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。
Android 官方推荐的工具是Jenkins,但是它的界面风格有些过时,此处还可以考虑使用 TeamCity ,它是JetBrains 公司开发的CI/CD 工具。
Jenkins 安装
如果需要同时编译打包Android、iOS项目,则只能将Jenkins 部署到Mac系统上,换言之就是需要一台Mac电脑做服务器。
这里以Ubuntu为例,查看官网文档 安装Jenkins 获取安装方式,安装前确保本地已经安装了JDK8及以上版本,执行java -version检查
由于命令自动安装的版本较旧,使用一些插件时存在问题,因此应下载最新的版本替换。
首先按照文档的要求执行命令安装旧版本
到国内镜像下载最新版本包: https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war
使用下载的
jenkins.war包,替换本地/usr/share/jenkins/jenkins.war包,如路径不同,可使用ps aux | grep jenkins查看自己系统上的jenkins.war在哪个路径下,然后替换执行命令重启服务:
sudo /etc/init.d/jenkins restart
以Linux为例,安装完成后会自动启动,使用sudo /etc/init.d/jenkins -h查看命令支持的参数
Jenkins 配置
在浏览器打开http://192.168.0.32:8080/,根据自己的服务器地址替换

查看本地密码 sudo cat /var/lib/jenkins/secrets/initialAdminPassword并复制到输入框
由于网络的屏蔽问题,继续后会出现以下情况,这里不建议配置代理

这里我们通过配置国内镜像解决问题
修改配置文件,将地址修改为国内镜像
sudo vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json</url>
</site>
</sites>
修改完成后,执行sudo /etc/init.d/jenkins restart重启服务,再次打开http://192.168.0.32:8080/,这时候插件会安装失败,需要修改插件的仓库地址,但是此时已经将刚刚配置的json文件下载到本地了:/var/lib/jenkins/updates/default.json
接下来修改插件的配置/var/lib/jenkins/updates/default.json
首先修改网络检测地址
connectionCheckUrl,官方是用的谷歌地址,国内肯定是连不通的
这里可以改成百度的地址,
"connectionCheckUrl":"http://www.baidu.com"配置文件中查找字符串
jenkins.war,我这里找到的是http://updates.jenkins-ci.org/download/war/2.281/jenkins.war,将其修改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.281/jenkins.war继续查找字符串
/download/plugins/,这里搜到的是https://updates.jenkins.io/download/plugins/开头的一堆路径,将这段路径整体替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/,注意是替换所有匹配到的保存修改后,再次重启服务:
sudo /etc/init.d/jenkins restart
在浏览器打开http://192.168.0.32:8080/,安装推荐的插件



最后登录创建的用户,完成整个搭建
Android 构建
首先要在服务器上配置好Android的编译环境,SDK、命令行工具等,另外还需要将SDK根目录配置到环境变量ANDROID_SDK_ROOT中:
export ANDROID_SDK_ROOT=/home/arcticfox/android-sdk
测试工程:https://github.com/arcticfox1919/jenkins_test
公众号“编程之路从0到1”