配置 Android 项目-持续集成

说明:如果你发现文章中有翻译不恰当的地方,欢迎指出,我会马上改正。

本文是配置 Android 项目系列的一部分:

  1. Little Things That Matter
  2. Version Name & Code
  3. Static Code Analyses Tools
  4. Continuous Integration

系列翻译:

  1. 重要的小事情
  2. 版本名和版本号
  3. 静态代码分析工具
  4. 持续集成

我们在这篇文章中讨论的一切都可以在 template 项目中找到

持续集成

持续集成(CI)——是每次团队成员对版本控制进行更改时自动执行构建的过程。

通常,构建会进行静态代码分析工具检查,测试并最终将 .apk 文件上传到某些分发平台(如 crashlytics beta)。

持续集成可以帮助你:

  • 确保编译代码并生成 .apk 文件
  • 运行静态代码分析工具来检查代码中的错误
  • 运行测试以确保代码正常工作(并非总是如此)
  • 分发 .apk 文件

有很多持续集成平台,其中一些可以在你自己的机器上安装,而另一些则提供基于云的解决方案。

作为例子,我们将讨论 githubbitrise.io 基于云的持续集成,因为它很简单,专注于移动应用并且功能丰富。

注意:集成非常有用,例如,你可以在构建成功或发生错误时向 Slack 发送消息。

建立

在你创建 bitrise.io 账号并且添加 github 项目之后,有两件重要的事情要做:

  • 添加 webhooks
  • 保护分支

Webhooks 允许在仓库中发生某些事件时通知外部服务。(例如:push, pull-request,等)

在我们的例子中,当执行 push 和 pull-request 时,bitrise.io 需要启动构建。

当你的 gitHub 账号和 bitrise.io 账号关联的时候 bitrise.io 会自动的为你添加 webhooks,这是 repo/project 注册中最后一步的一个选项(在“添加新应用程序”页面上)

如果你想手动添加 Webhooks,打开 bitrise.io 项目再点击 code 并且复制 webhooks url

接下来打开 github 项目,点击 setting 选中 Webhooks 然后点击添加 webhook 按钮。粘贴 bitrise.io webhook网址,并且选择切换到 Send me everything event。 最后点击添加 webhook 按钮。

为了保护分支禁用强制推送,防止分支被删除,并可选的在合并之前需要进行状态检查。

若要保护分支打开 github 项目,点击设置选项卡,选择分支类别并选择你想要保护的分支。

在 bitrise.io 构建完成之前,状态检查有助于防止合并拉取请求。下面你可以看到 github pull requests 窗口的例子。

tatus check in progres

​ Status check in progress

tatus check faile

​ Status check failed

tatus check completed successfu

​ Status check completed successful

构建

每个 bitrise.io 构建都具有以下生命周期:

  • 建立触发器
  • 工作流程已执行
  • 应用就绪

触发器定义了“何时”和“什么”构建。要编辑触发器,请打开bitrise.io项目,点击工作流选项卡并选择触发器。

你可以在下面看到触发器的示例,每当发送从 dev 到 prod 分支的请求时,都会启动名为 prod 的工作流。

工作流定义了构建过程的每一步。你可以按照自己的方式去自定义,以适应你的构建过程。打开 bitrise.io 项目编辑工作流程,单击工作流选项卡。在这里你可以创建新的工作流程或编辑当前的。

下面你可以看到工作流程示例:

  • 克隆项目仓库
  • 启动 gradle 任务 assembleProdRelease 生成 .apk
  • 启动 gradle 任务 lintProdRelease 检查是否没有 Lint 问题
  • 启动 gradle 任务 pmd 检查是否没有 pmd 问题
  • 启动 gradle 任务 findbugs 检查是否没有 findbugs 问题
  • 将 .apk 文件部署到 bitrise.io 进行分发

详细了解请前往 (静态代码检测工具)[http://www.baidu.com]

orkflow edito

构建完成后,你将看到关于构建状态,时间,持续时间,日志和生成构件的详细信息。

orkflow edito

​ Build detail

你还将获得公共链接,你可以从中下载 .apk 文件。

如果出现问题,你可以检查构建日志。

关于 Android+bitrise.io 的更多细节,可以看: