配置 Jenkins 自动化打包,折腾了一段时间,折腾完成就感还是蛮大的,说白了就是一次配置长期受益吧。事先声明 CentOS 7上其实还是没有配置成功,自己的服务器 1核 1G 内存打包的话感觉配置还是低了,最后在自己本地Mac上跑通了,用自己电脑当服务器,平常用足够了。现总结一些遇到坑,为后来人多铺点路吧。。。
1.一开始对 CentOS 7系统不熟悉,直接上手在上面进行配置,出了问题很难排查,应该先在本地跑通然后再在服务器上配置。
2.在 CentOS 7上安装 jdk sdk gradle git 等组件的时候一顿用 yum install 命令乱装,没有一开始规划好各组件的存放位置,致使在 Jenkins 上各组件配置的时候找不到存放路径,又是一顿谷歌。。。
3.没有认清 Android SDK在 Mac 跟 Linux 下的差距,直接将本地 Mac上的 sdk上传到服务器上,导致运行 build 命令的时候总是出问题,折腾了几天。然后在https://developer.android.com/studio/ 里面下载 Linux 下的
4.git配置的时候页面 显示Failed to connect...
网上搜的一般都是SSH证书没认证啥的,但是我这边拉 git 代码都是通过 HTTP 方式进行连接的,一般这问题都是账号跟密码没有填写正确所致。但是以前在上家公司用的打包机,有项目打包,以前能用突然有一天不能用了,项目管理里面 git 就报这个错,但是其他项目没有影响,账号跟密码是一致的,找问题没有解决,应该是jenkins里面没有识别git的环境变量,直接执行git命令执行不了。
5.git 拉代码的时候连接10分钟超时问题
jenkins 应该是默认有个10分钟编译时间,有时候项目比较大,在服务器上部署的时候拉代码比较慢,时常出这问题,配置如下解决问题
6.jenkins 显示时间出问题
jenkins修改时区,修改/etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Duser.timezone=Asia/Shanghai"
改完重启jenkins
7.打包 apk 以后的上传
一般都是上传到蒲公英或者 fir,他们都有相对应的上传插件,不用自己去写 Python 命令调用接口进行上传,方便操作。
7.Build History 定制,最后效果如下:
description setter plugin 插件直接在Jenkins 里面的插件管理里面就能找到安装。
8.标记格式器中找不到safe html选项
谷歌了很多都是答非所问,其实就是没有装插件 OWASP Markup Formatter
参考:
Jenkins+Git+python+Pgyer Android打包发布实践
Android Jenkins+Git+Gradle持续集成-实在太详细
Android持续集成:Jenkins+Github+蒲公英/Fir.im+邮件通知
Jenkins的系统消息和邮件通知配置