您的位置:首页 > 移动开发 > Android开发

Android+Jenkins——从持续集成到测试发布

2017-07-16 00:22 232 查看
前言

安装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] 
我们是通过蒲公英进行发布的。蒲公英

成功注册后,会得到API



7.邮件通知

在一般情况下,我们可以通过邮箱设置,当项目Build出现不稳定或失败时,就可通过邮件进行及时自动提醒给管理者。

我们是使用qq邮箱进行邮箱通知的。即QQ邮箱开启SMTP服务。





点击“系统管理”–> “系统设置”,滑倒邮件通知选项



增加“构建后操作步骤”–>”E-mail Notification”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 自动化测试