前言
在上家公司,由于业务要求,需要频繁的出APP包来为业务引流量;当时发现人工方式去打包成为我们开发的主要瓶颈,于是拉通APP端,运维端,测试端设计一套自动化打包平台,使得效率提升N倍(由1个包/3人 提升到点一个按钮出包)。
自动化打包流程
自动化打包流程:
生成nginx接口混淆(55个老接口),并在测试和预生产环境进行部署
数据库表-注意新的url加唯一索引(生成策略:每级:产品名首尾字母,加随机数),表结构 老接口地址->新接口地址
三个环境的nginx配置文件,并上传至git
location /ag/gdnf/gcoev { rewrite ^ /ag_gdnf_gcoev last; } location /ag_gdnf_gcoev { proxy_pass http://192.168.172.11:8888/get/switch; }
调用测试环境shell脚本进行拉取并reload对应环境的nginx
上传固定的 图片,秘钥文件,google的json文件
形成新的包(APP开发人员通过swagger接口进行访问)
从git上拉原始代码并复制到新的目录下
对源代码的秘钥 进行进行替换(调用python进行替换)
替换图片(调用python进行替换)
执行混淆后的接口替换(调用python进行替换)
对源代码产品名替换(调用python)
增加无效资源(调用python)
增加无效方法
将新形成的代码提交git(调用shell)
针对新的代码打不同环境的apk包并将包上传至oss(调用shell脚本)
将新的包的资源地址发邮件给 开发及测试
生成环境处理
- APP开发用新的机器打 生产包(生产域名替换)
- 发上线申请邮件,发需要混淆接口的产品名,附件APP包
- 运维执行生产环境nginx混淆,并将新包上传生产环境的OSS
- 测试进行验证
效率提升
项 | 手工方式 | 自动化打包平台 |
---|---|---|
打包效率 | 1个包/3人天 | 1天/N个包(实际半年打包 412个,实际3个/1人天) |
受制约因素 | 开发打包 | 产品提供素材、测试、运营 |
总结
- 在以后的文章中博主会将具体详细的实现步骤进行分享;
- 有幸能生活在信息时代,信息时代使得自动化大大降低自动化的门槛(比如IPhone上的快捷指令),让我们个人也有能力实现自动化流程大幅提高工作和生活的效率;享受这个时代赋予我们的红利