Android自动构建

Android自动构建发布实践

首先声明。

这主要不是讲教程,这是集成过程中遇到的坑!

这主要不是讲教程,这是集成过程中遇到的坑!

这主要不是讲教程,这是集成过程中遇到的坑!

重要的事情说三遍。

集成工具

工具简单介绍一下,

jenkins是现在比较主流的CI,也正是因此,上面的插件丰富,涵盖面也很广,更为重要的是,非常容易安装和配置,自然是首选。

Git 版本管理工具,就不用了讲解了。jenkins同时支持svn。(还是建议大家早点转到git上)公司现在的版本管理使用的是gitlab,类似github(github的迷你版)。

Gradle是现任Android构建,很是强大。至于grade配置,网上教程很多也很杂乱,建议大家跟随谷歌原版[Gradle 用户指南]()

这里再推荐一篇,个人认为对Gradle解读很到位的一篇文章。[深入理解gradle]()

开始集成

安装jenkins。

如果你是mac或者Linux,可以直接通过shell安装(推荐

$ brew install jenkins 

如果没有brew,先安装Homebrew

 $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果没有ruby… 请自行google。

启动 Jenkins

$ jenkins

访问 Jenkins

    http://localhost:8080/
  
    defaults write /Library/Preferences/org.jenkins-ci httpPort xxxx
  

jenkins最基本的安装就完成了。然后,可以在浏览器输入地址查看一下。看到这样的画面,基本安装就完成了。

initjenkins

截图里包含两个,一个是通过web端浏览器访问得到的界面。另一个是shell的日志。

jenkins到此结束。开始使用jenkins,Android的构建之旅吧。

jenkins的插件安装

两种方式。这里以安装Git插件为例。

  1. 通过查询安装。
  2. 通过自行下载*.hpi , 然后通过高级安装。

选择系统管理,然后选择管理插件。 initpulgin

查询安装。

在插件管理界面,选择可选插件,然后在右边过滤器里筛选Git或GIT plugin

jenkinsgit

然后选择立刻安装。

自行下载*.hpi , 然后通过高级安装

jenkinscuston

然后选择上传。

遇到的坑

可以说刚开始我是一只使用第一种方法来安装插件的。结果失败率非常高。如果不自备梯子,失败率会更高!

折腾了很长时间,而且搞得自己心里憔悴。

所以建议大家通过自己去jenkins的官网或镜像来下载hpi文件自行安装需要的插件。

还有,自备梯子是一种好习惯。

需要安装的插件

到此为止,所有的环境都准备好了。终于可以开动了!

自动化构建实例

jenkins中新建一个项目,命名后,选择 构建一个自由风格的软件项目

项目名称。跳过

描述。跳过

… 各种跳过,直接进入源码管理。

源码管理

jenkinssource

这里选的是Git,当然如果你只有现实svn的话,那就是你还没安装Git的插件,具体安装请看上文。

记住选择构建的分支。(这里是一个只含一个界面调试的项目,所以我直接用了master。建议,创建一个deploy发布或者debug这样的分支,确保每次构建都是可控的。)

注意到Credentials,这是身份验证。这里直接写了none,也就是说,没有直接验证身份。难道说,我的项目没加任何限制???

当然,不是啦。Git的项目,无论是Github还是自己搭建的Gitlab,大多数都是通过ssh验证的。

可以点击Credentials 后面的Add 。

jenkinsssh

这样保证jenkins部署的机器的ssh私钥在服务上。

构建触发器

这就是传说中的自动构建。直接上图讲解。

jenkinsauto

这里有三种事件触发构建。

  H 10 * * *
  分 小时 天 月 年
  
  // 五位分别指向轮询事件,这里H 和 0 差不多意思,就是不顾及 分,每天10天构建。
  // * 指忽视
H/5  指每五分钟。 这种写法指每这段时间进行轮询

构建

构建栏中,选增加构建步骤。选择Invoke Gradle script,当然,如果没有这个选项,就是未安装Gradle插件,然后具体的参数。

jenkinsbuild

熟悉Gradle的,很容易看明白,只是执行了了gradle clean build 指令而已。不熟悉的也没关系,我会单独再写一篇关于优化Gradle在安卓上面的部署的 ,以及Gradle使用。

构建后操作

我这里使用的是fir.im (做的还不错哦)。

选择增加构建后操作步奏,选择Upload to fir.imjenkinsfir

Token 需要注册fir后生成。

IPA/APK Files ,是可选项。如果不填写,会直接从目录里找。如果填写了,则是会找到需要的目录。

其他的涉及到测试等方面。不是本文涉及的内容。

以上全部内容都是在自己mac上执行完成的。

接下来在Linux上部署。

到此构建基本完成。


comments powered by Disqus