linux|自动化打包平台系列(一):自动化打平台建设概览

前言

在上家公司,由于业务要求,需要频繁的出APP包来为业务引流量;当时发现人工方式去打包成为我们开发的主要瓶颈,于是拉通APP端,运维端,测试端设计一套自动化打包平台,使得效率提升N倍(由1个包/3人 提升到点一个按钮出包)。
自动化打包流程
  • 自动化打包流程:
    • 生成nginx接口混淆(55个老接口),并在测试和预生产环境进行部署
      • 数据库表-注意新的url加唯一索引(生成策略:每级:产品名首尾字母,加随机数),表结构 老接口地址->新接口地址
      • 【linux|自动化打包平台系列(一):自动化打平台建设概览】三个环境的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上的快捷指令),让我们个人也有能力实现自动化流程大幅提高工作和生活的效率;享受这个时代赋予我们的红利

    推荐阅读