Android+Jenkins——从持续集成到测试发布
2017-07-16 00:22
232 查看
前言
安装Jenkins及第三方插件
配置git实现Jenkins和gitlab的持续性集成
1在客户机上生成ssh密匙
2将公匙保存到gitlab中
3将私匙保存到jenkins
实现持续性集成的准备构建触发器定期构造检查
实现测试
打包发布
邮件通知
主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。
Jenkins 的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
为解决程序代码提交质量低,提交内容导致原有系统的bug,按时或按需自动编译版本,自动进行自动化测试。即
1.定时拉取代码并编译
2.静态代码分析
3.定时打包发布测试版
4.自定义额外的操作,如跑单元测试等
5.出错提醒
对于Windows:
从官方下载最新的Jenkins。地址:Jenkins官网
如果不是很熟,按默认一步一步安装,即可。
对于Linux:
可以参看How To Install Jenkins on Ubuntu 16.04-2017年
其中,在启动Jenkins的命令sudo systemctl start jenkins可能因未安装systemctl而无法运行,可以使用service jenkins start代替。
正常安装界面:
如果网络或服务器卡,可能导致第三方插件自动安装失败,reply一下就好。
值得注意的是
(1)Jenkins的服务器地址会默认为localhost:8080.
如果需要更改8080端口的话,可以在Jenkins的安装目录(即jenkins.war所在目录)下,运行“java -jar jenkins.war –ajp13Port=-1 –httpPort=8089”命令。
(2)在第一次进入Jenkins时,要将Jenkins安装目录下的initialAdminPassword中的随机数串填入,才能进入Jenkins。
如果本地未安装git的话,可以在git官网上下载最新的git。
总的来说,可以分两步。一、在git上创建ssh私匙和公匙。二、分别将公匙保存到gitlab中,将私匙保存到Jenkins中。
因为在源码管理中的Credentials认证时,使用用户名和密码来配置一般是不通过的。
所以,使用ssh密匙对的方式进行配置。
之后,可以一直enter下去。也可以根据提示,将ssh存放到特定的文件中或者设置密码。
结果如下图所示
因而打开id_rsa.pub,将其中的公匙保存到gitlab中。
如下图所示:
值得注意的是在jenkins中的Credentials认证的add jenkins的username**必须**填写你ssh文件名。
以下是一些我们遇到的一些jenkins连接gitlab中的问题及解决方式。
1、无法通过ssh连接到gitlab,连接超时。
我遇到问题的原因有以下几点:
1、ssh密匙放置错误。ssh私匙没有成功地放入jenkins之中,Credentials证书中的username与ssh存放的文件名不符。
2、gitlab服务器或网络出了问题。
2、ssh密匙失败,无访问权限
解决方式:重新生成ssh密匙,添加到gitlab和jenkins之中,选定。
Build periodically(定期构造)和POLL SCM(定时检查源码变更)
Build periodically:不关心源码是否发生变化,按照一定的周期进行项目构建
Build when a change is pushed
a23e
to GItHub:只要GitHub上面源码一更新就立即进行构建
Poll SCM:定时检查源码变更,如果有更新就下载最新的代码下来,然后执行构建
以下为具体的设置
•MINUTE HOUR DOM MONTH DOW
•第一个参数代表的是分钟 minute,取值 0~59;
•第二个参数代表的是小时 hour,取值 0~23;
•第三个参数代表的是天 day,取值 1~31;
•第四个参数代表的是月 month,取值 1~12;
•最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天
•特殊格式;
•* 指所有有效的值
•M-N指定值的范围
•M-N/ X或*/ X是指以X为步长,指定的区域或整个有效范围区间的值
•A,B,…,Z列举多个值
•eg.H/15 * * * * 每十五分钟执行一次
• H(0-29)/10 * * * * 每小时的0-29分内每隔十分钟执行一次
• H 9-16/2 * * 1-5 每个工作日的9-16点内每隔两小时执行一次
• H H 1,15 1-11 * 1-11月的每月1号和15号各执行一次
参考文档:蒲公英上使用Jenkins实现持续集成android
在gradle上进行构建工作,在Tasks上输入clean assembleRelease -debug,打出正式包,并检查代码。
通过shell脚本执行post上传指令对项目的apk进行上传。
在Command上,根据文件的位置和蒲公英上的具体数值填写如下信息
安装Jenkins及第三方插件
配置git实现Jenkins和gitlab的持续性集成
1在客户机上生成ssh密匙
2将公匙保存到gitlab中
3将私匙保存到jenkins
实现持续性集成的准备构建触发器定期构造检查
实现测试
打包发布
邮件通知
1. 前言
Jenkins 是一个可扩展的持续集成引擎。主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。
Jenkins 的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
为解决程序代码提交质量低,提交内容导致原有系统的bug,按时或按需自动编译版本,自动进行自动化测试。即
1.定时拉取代码并编译
2.静态代码分析
3.定时打包发布测试版
4.自定义额外的操作,如跑单元测试等
5.出错提醒
2. 安装Jenkins及第三方插件
安装Jenkins:对于Windows:
从官方下载最新的Jenkins。地址:Jenkins官网
如果不是很熟,按默认一步一步安装,即可。
对于Linux:
可以参看How To Install Jenkins on Ubuntu 16.04-2017年
其中,在启动Jenkins的命令sudo systemctl start jenkins可能因未安装systemctl而无法运行,可以使用service jenkins start代替。
正常安装界面:
如果网络或服务器卡,可能导致第三方插件自动安装失败,reply一下就好。
值得注意的是
(1)Jenkins的服务器地址会默认为localhost:8080.
如果需要更改8080端口的话,可以在Jenkins的安装目录(即jenkins.war所在目录)下,运行“java -jar jenkins.war –ajp13Port=-1 –httpPort=8089”命令。
(2)在第一次进入Jenkins时,要将Jenkins安装目录下的initialAdminPassword中的随机数串填入,才能进入Jenkins。
3. 配置git,实现Jenkins和gitlab的持续性集成
在一开始,如果我们选择的是“Install suggested plugins”,即推荐安装。那么就可以直接进行配置。如果本地未安装git的话,可以在git官网上下载最新的git。
总的来说,可以分两步。一、在git上创建ssh私匙和公匙。二、分别将公匙保存到gitlab中,将私匙保存到Jenkins中。
因为在源码管理中的Credentials认证时,使用用户名和密码来配置一般是不通过的。
所以,使用ssh密匙对的方式进行配置。
1、在客户机上生成ssh密匙。
打开git bash:》git config --global user.name “your name” 》git config --global user.email “your_email@gmail.com” 》ssh-keygen -t rsa -C “your_email@gmail.com”
之后,可以一直enter下去。也可以根据提示,将ssh存放到特定的文件中或者设置密码。
结果如下图所示
2、将公匙保存到gitlab中
因为我是一直enter下去的,所以,我的公匙保存在id_rsa.pub当中。因而打开id_rsa.pub,将其中的公匙保存到gitlab中。
3、将私匙保存到jenkins
将私匙保存到jenkins的源码管理的Credentials的add jenkins 选择ssh username with private key,之后,在username填入你私匙文件的名字,即id_rsa,在private key中选择enter directly,填入id_rsa中的私匙值。最后点击add。如下图所示:
值得注意的是在jenkins中的Credentials认证的add jenkins的username**必须**填写你ssh文件名。
以下是一些我们遇到的一些jenkins连接gitlab中的问题及解决方式。
1、无法通过ssh连接到gitlab,连接超时。
我遇到问题的原因有以下几点:
1、ssh密匙放置错误。ssh私匙没有成功地放入jenkins之中,Credentials证书中的username与ssh存放的文件名不符。
2、gitlab服务器或网络出了问题。
2、ssh密匙失败,无访问权限
解决方式:重新生成ssh密匙,添加到gitlab和jenkins之中,选定。
4. 实现持续性集成的准备——构建触发器定期构造检查、
Build periodically(定期构造)和POLL SCM(定时检查源码变更)
Build periodically:不关心源码是否发生变化,按照一定的周期进行项目构建
Build when a change is pushed
a23e
to GItHub:只要GitHub上面源码一更新就立即进行构建
Poll SCM:定时检查源码变更,如果有更新就下载最新的代码下来,然后执行构建
以下为具体的设置
•MINUTE HOUR DOM MONTH DOW
•第一个参数代表的是分钟 minute,取值 0~59;
•第二个参数代表的是小时 hour,取值 0~23;
•第三个参数代表的是天 day,取值 1~31;
•第四个参数代表的是月 month,取值 1~12;
•最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天
•特殊格式;
•* 指所有有效的值
•M-N指定值的范围
•M-N/ X或*/ X是指以X为步长,指定的区域或整个有效范围区间的值
•A,B,…,Z列举多个值
•eg.H/15 * * * * 每十五分钟执行一次
• H(0-29)/10 * * * * 每小时的0-29分内每隔十分钟执行一次
• H 9-16/2 * * 1-5 每个工作日的9-16点内每隔两小时执行一次
• H H 1,15 1-11 * 1-11月的每月1号和15号各执行一次
5. 实现测试
6.打包发布
参考文档:蒲公英上使用Jenkins实现持续集成android
在gradle上进行构建工作,在Tasks上输入clean assembleRelease -debug,打出正式包,并检查代码。
通过shell脚本执行post上传指令对项目的apk进行上传。
在Command上,根据文件的位置和蒲公英上的具体数值填写如下信息
curl -F "file=@/tmp/example.apk" -F "uKey=" -F "_api_key=" https://qiniu-storage.pgyer.com/apiv1/app/upload[/code]
我们是通过蒲公英进行发布的。蒲公英
成功注册后,会得到API7.邮件通知
在一般情况下,我们可以通过邮箱设置,当项目Build出现不稳定或失败时,就可通过邮件进行及时自动提醒给管理者。
我们是使用qq邮箱进行邮箱通知的。即QQ邮箱开启SMTP服务。
点击“系统管理”–> “系统设置”,滑倒邮件通知选项
增加“构建后操作步骤”–>”E-mail Notification”
相关文章推荐
- Java开发流程自动化(svn+maven+nexus+jenkins) --自动编译,持续集成,测试,打包,发布/部署
- Android开发、测试持续集成环境Jenkins搭建
- !!!Android开发、测试持续集成环境Jenkins搭建
- Docker+Jenkins持续集成环境(5): android构建与apk发布
- Android开发、测试持续集成环境Jenkins搭建
- Jenkins持续集成测试之Android单元测试
- 【mac+Android Studio】【持续集成优化】搭建Jenkins+svn+Android Studio+发布到蒲公英+发邮件
- AndroidUiAutomator使用Jenkins搭建持续集成测试系统Ⅰ—Android UiAutomator以及快速编译方法
- Java开发流程自动化(svn+maven+nexus+jenkins) --自动编译,持续集成,测试,打包,发布/部署
- 自动化测试与持续集成方案--Android crash 收集
- jenkins+ant+jmeter搭建持续集成的接口测试平台
- 持续集成-Jenkins+robot framework+Appium实现在单台电脑上管理不同安卓终端运行不同测试用例
- Jenkins构建Android项目持续集成之系统配置篇
- 【转】Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台 (开箱即用)
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- Jenkins+Docker搭建持续集成测试环境
- Jenkins构建Android项目持续集成之findbugs的使用
- Jenkins构建Android项目持续集成之findbugs的使用
- Windows下Android项目搭建Jenkins持续构建+自动化测试