前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Docker+Jenkins+Pipeline完成Android自动化测试打包服务

利用Docker+Jenkins+Pipeline完成Android自动化测试打包服务

作者头像
岛哥的质量效能笔记
发布2021-08-18 14:57:25
1.3K0
发布2021-08-18 14:57:25
举报
文章被收录于专栏:岛哥的质量效能笔记

阅读本文大约需要2.7分钟。

前言

Docker首次创造了一种简单易行并且覆盖应用全生命周期的工作流。用户可以通过简单的指令或Restful API来拉取、打包、运行和维护容器。这种简化从根本上降低了应用程序部署的难度,极大地提高了应用运行时环境的部署与维护的效率。

Docker提供了一种统一的实践方法,每个服务(或应用)维护一个Dockerfile文件。即便使用编排工具如Docker Compose,一个服务(或应用)也只需维护一个docker-compose.yml文件。应用程序及其运行时环境全部打包到一个简单易读的Dockerfile或Compose文件中,开发团队和运维团队都可以透明地合作维护这个文件,极大地降低了沟通成本与部署成本,满足了研发团队与DevOps团队、运维团队之间的沟通需求,清晰划分了责任边界。

这对应用开发者来说也是一种福音,使用各种开发环境的用户,再也不必担心破坏主机的系统环境(如环境变量)和应用程序。

今天以自动化测试过程中的Android应用每日版本构建为例,讲解如何利用Docker+Jenkins+Pipeline来简化持续集成服务的部署。

下面主要还是讲实践,对于Docker、Jenkins、Pipeline还有Android等的基础知识不会做过多说明。

Jenkins安装

在我的系列文章中,如果没有特殊说明,均是指在Mac OS环境下的操作。

Jenkins在Mac上的安装方式有很多种,我主要尝试过下面几种:

  1. 在官网直接下载对应Mac系统的.pkg安装包,像Mac普通应用程序一样安装即可(但这种方式安装后会存在很多Jenkins主目录权限问题,后期实际工作过程中填过不少坑);
  2. 在官网下载最稳定的Jenkins WAR包,运行命令:java -jar jenkins.war 即可;
  3. 通过brew直接安装:brew install jenkins;

今天这里介绍一下通过Docker的方式来安装部署Jenkins:

代码语言:javascript
复制

后续的引导设置步骤比较简单这里就不多说了,这里要提一点的是当你通过docker第一次启动Jenkins后,会在控制台中打印出解锁Jenkins的密码:

但有时候会不小心在启动命令中多加了-d参数,这样docker容器会进入后台运行,就不会在前台输出日志信息了,这时可以运行下面这条命令:

代码语言:javascript
复制

这样就可以重新看到上面截图中的日志信息了,But还有一种意外情况,就是不小心把容器给关闭了,这时候即便通过上面的命令查看日志,也找不到解锁Jenkins的密码信息了,不要慌,我们还可以执行下面的命令直接进入容器来查看:

代码语言:javascript
复制

自动创建Android编译环境

自动创建(Automated Builds)是Docker Hub提供的自动化服务,这一功能可以自动跟随项目代码的变更而重新构建镜像。

例如,这里我通过Dockerfile的形式构建了一个包含Android编译环境的镜像,如果这个Dockerfile有更新,我需要手动更新镜像。而自动创建则允许我通过Docker Hub指定跟踪一个目标网站(目前支持GitHub或BitBucket)上的项目,一旦项目发生新的提交,则自动执行创建。

要配置自动创建,包括如下的步骤:

1)创建并登录Docker Hub,进入账户设置页面,允许Docker Hub访问Github;

2)在Docker Hub中配置一个“自动创建”类型的项目;

3)选取一个目标网站中的项目(需要含Dockerfile)和分支;

4)指定Dockerfile的位置,并提交创建。 之后,可以在Docker Hub的“自动创建”页面中跟踪每次创建的状态。

Dockerfile的完整内容如下:

代码语言:javascript
复制

Jenkins Pipeline配置

Jenkins Pipeline的使用可以参考之前的一篇文章《通过Jenkins Pipeline实现自动化部署》,这里先贴出主要的Pipeline脚本:

代码语言:javascript
复制

这个Pipeline主要分为三部分,第一部分检出仓库代码,第二部编译Android工程,第三部通过钉钉插件发送结果通知。这些过程都是在docker容器中进行的,任务开始执行时会自动创建一个docker容器,完成后会自动销毁,非常方便,再也不用为各种环境配置发愁了!

推荐阅读:

通过Jenkins Pipeline实现自动化部署

通过Docker搭建SonarQube平台

想要明白些道理,遇见些有趣的事 —— 离岛

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档