企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 安卓组持续集成文档 随着测试阶段的到来,打包成为了开发人员的日常工作之一。而安卓打包也十分耗费时间,特别是在 Windows 平台下。为了将开发人员从无尽的打包需求中拯救出来,同时为了日后更多的持续集成工作,是非常有必要做持续集成的。 本文档会从项目采用的工作流出发,说明目前的集成方案的理由,再对具体的配置和使用作出一定的教程。 ## 1. 目前采用的工作流 目前项目采用的是标准的`gitflow`工作流,流程图如下: ![](http://myqianlan.qiniudn.com/blog/2014/11/15/git-workflow-release-cycle-4maintenance.png) * **master** : 主分支,线上代码 * **develop** : 单一的开发分支,其他分支要从此分支checkout,其他分支的修改最终也要合并到此分支。不要直接在 develop 分支上开发,也不能直接push,而是通过`merge request`来合并分支。 * **feature** : 特性分支,版本开发分支,从**develop**分支checkout。根据迭代的版本或功能的不同,可以存在多条不同的 feature 分支,例如 feature-1.0, feature-dreamBuild4 等待。功能测试通过后合并到 develop 分支。 * **release** : 版本发布分支。从**develop**分支检出。当 develop 分支的代码满足下一版本的需求的时候,检出 release 分支并进行整合测试,回归测试,产品验收等流程。产品发布后,合并到**master**分支和**develop**分支 * hotfix : 略。 ## 2. 持续集成方案和通知 基于如上工作流,我们决定对 develop, feature, release 分支进行自动打包,策略如下: * develop : 每天早上8.30检查是否有分支合并,如果有则重新打包; * feature : 特性开发分支,生命周期在产品开发阶段,主要提供给测试人员。每天早上9点,下午2点,傍晚6点会检查代码更改,如果有更新则自动打包; * release : 版本发布分支,生命周期主要在产品验收阶段,提供给测试、产品等各方。每次提交代码都会进行打包。 每次打包会有对应钉钉消息通知,如果需要关注打包信息,请搜索加入[远智教育Android自动打包信息群](https://qr.dingtalk.com/action/joingroup?code=v1,k1,vvFPkyM4W8rN0b7G1SFbpcaQWQ6JXRCNUIKs+k204Ts=&_dt_no_comment=1&origin=11)。 打包后apk会上传到[https://fir.im/tx91](https://fir.im/tx91),需要安装的请自取,注意查看更新信息: ![](/uploads/gx/images/m_48a3ff8d62857325d69b0a6b05831153_r.jpg) ## 3. 手动打包使用教程 虽然已经配置了自动打包,但有时候存在切换接口地址等需求,也可以手动在 jenkins 进行: 1. 登录[jenkins](jenkins.yzwill.cn),打开`android`选项卡: ![](/uploads/gx/images/m_51ed96eff3caef85d569086cd9bf42f2_r.jpg) 2. 找到你要进行打包的分支任务,点击进入任务详情,点击`Build with Parameters`: ![](/uploads/gx/images/m_f7a02ab4366a1cb04b81d82a2588fd54_r.jpg) 3. 在打开的配置页面填写要打包的服务器地址,默认是89,然后点击"开始构建": ![](/uploads/gx/images/m_868adcffdb3cba80b9e71e726cb8fb22_r.jpg) 4. 等待钉钉通知,然后获取安装包即可。 ## 4. 配置教程 在进入新的项目阶段时,需要配置对应的自动化打包任务,对应的任务策略请看上面**第2点**。操作步骤如下: 1. 新建一个“自由风格的软件项目”,名字的命名规则如下: * android-feature_xxx : 特性分支,开发阶段。`xxx`为当前迭代版本或者功能模块,例如 feature_login * android-release_x.x.x : 版本发布分支,整合测试、验收阶段。`x.x.x`为当前版本号 2. 在新建页底部填写`copy from`,此处有自动补全。选择与你当前配置分支一致的任务,然后点"OK": ![](/uploads/gx/images/m_6db3610b0ecdc1902a783f9b63550f85_r.jpg) 3. 对配置的以下信息进行修改: * **General** : 根据实际模块或版本修改项目描述: ![](/uploads/gx/images/m_24502af5fc7dcfc69189930fa884a8f6_r.jpg) * **源码管理** : 更改打包分支: ![](/uploads/gx/images/m_10f038f2370234c7dba7adc94dd5086e_r.jpg) * **然后保存即可** : ![](/uploads/gx/images/m_d186da0a4b4a727a24a8ed79ace26810_r.jpg) 其他配置不需要更改,项目即会按照设定的策略去自动打包。