全文预计阅读时间:7分钟
前言
之前和朋友聊天的时候有聊到测试这一块的东西,朋友所在的公司一直就是用的 jenkins 持续化集成,测试的同事要测试某个产品的时候直接拉取自动化构建,生成的二维码下载下来,完全不用找开发人员要 apk 包,想要打那个版本的都可以,当时感觉这个东西真好。刚好最近有点时间研究下,由于个人也是小白,在研究的过程中爬了一些坑,感觉网上资料很多,但是不系统也不太全,于是就有了这篇笔记吧。
这完全是一篇小白入门的文章,由于篇幅过长,于是分了几篇来写。
下面进入正题。
环境配置
先贴一张最终的效果图:
环境: Tomcat + Jenkins
Tomcat 具体的下载和安装过程就不说了,只从 Jenkins 开始说起,首先去Jenkins 官网下载对应的 war 包,选择 Generic Java package(.war)
下载下来,至于选择 Weekly (周更)还是 Long-term Support(长期稳定版) 都可以,不过建议选稳定版。
下载好放到 webapps
目录,然后 startup.sh (或 startup.bat) 启动;在浏览器里边输入 localhost:8080,就可以看到输入密码界面,根据提示拷贝指定文件中的 password 粘贴下一步;
直接选择 Install suggested plugins 就好,等会个别少的插件再去下载。
下载好后创建一个账户和 Jenkins URL, image为了好记,我填写成 jenkins,前面修改成 http://127.0.0.1:8080/jenkins 截图忘了修改了
image下一步装一下我们需要的插件:系统管理 -> Avaliable
直接搜索安装下列插件:
-
Dynamic Extended Choice Parameter
-
build-name-setter
-
Localization:Chinese(Simplified) 简体中文语言包
-
Upload to pgyer
-
user build vars
-
配置 Android sdk 和 Gradle 版本
系统管理 -> 系统设置 -> 全局属性,新增键值对,配置 Android sdk 和 gradle 版本:
-
确保 Jenkins Location 填写正确
下次我们登录就可以直接在浏览器里边输入
imagehttp://localhost:8080/jenkins/
输入用户名和密码来登录 Jenkins 了。 -
配置邮件通知
image这里我设置的管理员邮箱是 qq 邮箱,需要自己到 QQ 邮箱根据提示发条短信开通服务( POP3/SMTP 服务)。一切配置好后,可以选择给任意一个邮箱发送一封测试邮件,如果能正常收到,就继续下一步了。
新建任务( job )
创建我们的第一个项目:
新建任务 -> 输入任务名称,这里我填入 HelloJenkins,构建一个自由风格的软件项目:
-
General配置
Jenkins 默认的主目录在/Users/xxx/.jenkins/
,如果我们不修改我们项目的工作空间那么默认位置在/Users/xxx/.jenkins/workspace
,这里我自己指定为新的目录。
另外,丢弃旧的构建可以指定具体的 保持构建天数和保持构建的最大个数,不过我们自己指定的位置,改不改影响不大。
-
源码管理
我选择 Git,配置下项目地址,用户名密码信息或者 ssh 信息,这里我用的用户名和密码,点击 添加,就可以添加一个,暂时指定为 master 主干:
image -
构建
构建触发器、构建环境都先不管,我们先通过最简单的配置,能从仓库克隆下来,完成编译打包这个动作,稍后在配置其它步骤;
增加构建步骤、选择
imageInvoke Gradle script
,我倾向于使用Use Gradle Wrapper
,实际上那个都可以,然后我们指定要执行哪些 Tasks 命令。保存,回到工程 HelloJenkins 面板,选择立即构建,在 Build History 等进度条走到尽头,第一次稍微慢点,有可能需要 fq 下载;然后就可以去我们指定的目录下查看 debug 包已经有了。
我们可以在构建的中途或者完成后,点击「Build History」具体的历史记录,可以看到该条 Build 的所有信息,我们点击「控制台输出」可以查看 build 过程中的日志输入。
如果有报错,我们可以在 task 命令后追加
--stacktrace --debug
来打印更详细的日志信息,需要注意的是我们指定的 Gradle 版本最好与 AS 工程里配置的一致。如果没啥问题我们就把打好的包上传内测平台。
上传 apk 到「蒲公英」
实际上上传操作可以放到「构建」,也可以放到「构建后的操作」步骤中,这里我先偷个懒,为了使用上传成功后返回的参数注入的全局变量,所以选择放在「构建」步骤中。
一般我们在构建成功后,把生成的 apk 上传到「蒲公英」,生成下载二维码,保存二维码到本地,这一步就用到了 Upload to pgyer
插件。具体操作为: 增加构建步骤 -> Upload to pgyer with apiV1
相信很多同学对蒲公英内测平台都不陌生,具体配置参考文档 蒲公英插件上传 ,我只在这里贴一下我的配置:
简单提一下,「qrcodePath」这个是上传成功后,我们指定保存的下载二维码的路径,也就是把二维码保存到哪里。「envVarsPath」是返回的本地上传成功后返回的描述信息。
-
构建后的操作
在「Build History」中修改 build description(构建的描述信息),添加生成的二维码和下载按钮,操作为:
image增加构建后操作步骤 -> Set build description
填写的内容为:
<img src="${appQRCodeURL}" width="100" height="100"><br><a href="${appBuildURL}" > 点击下载-${appName}-v${appVersion}</a>
这里的 appQRCodeURL appBuildURL appName appVersion
都是使用蒲公英上传成功后返回的参数,上传成功后会注入 Jenkins 的全局变量中,我们直接引用这个全局变量即可。查看蒲公英上传成功后返回的参数
重新构建,发现构建历史里边并没有二维码和下载按钮,而是显示的上述文本,这是因为 Jenkins为了安全起见,默认把所有输入都当做了纯文本处理了。可以按照如下路径更改,系统管理 -> 全局安全配置 ->标记格式器
修改为 Safe HTML
,再次构建成功后,对应的构建描述中就有了下载的二维码,和点击下载按钮。贴一下效果图吧。
我们可以用手机扫描二维码进行安装测试了。只不过我们点击下载按钮要先跳转到蒲公英网站后才能下载,这是美中不足的一点,那么能不能点击下载按钮直接下载对应的 apk 文件到本地呢?答案是肯定可以的,先留个悬念,文章太长,就放到下一篇 Jenkins 自动化构建教程(二)中来写啦。下一篇会写一下更高级的操作。
微信扫码关注,接收更多更全文章
网友评论