• 转转客户端持续交付—鲁班的构建管理


    背景

    随着业务的发展,转转除了转转APP外,开发了越来越多的独立APP去满足业务;作为转转最早的客户端团队,除了满足自身业务需求外,也需要提供公司级通用的APP持续交付基础能力。可快速扩展到其他APP使用,提高整体工作质量和效率。

    鲁班在持续交付的整体流程中,主要承担:APP版本流程、包构建、APP专项测试等能力。

    鲁班的构建管理

    APP的持续交付尽可能的将整体项目流程串了起来。开发阶段的代码分支由beetle进行管理,详见文档《转转客户端持续集成--分支管理

    本次主要给大家分享鲁班的包构建管理相关能力。

    开发测试阶段,包构建频次非常高,整个阶段经历:提测-测试-修复-测试的一个反复过程,构建管理提供了这个环节的基础能力,需要提供稳靠,尽可能自动化,减少人工重复消耗的能力。

    结合背景和我们的目标需求,在设计鲁班的构建管理模块时,主要包含了以下几个点:

    1、通用性,可扩展

    构建能力不仅仅是给转转APP,需要可快速扩展到公司其他APP;并支持各业务自定义自己的打包脚本。

    构建脚本将通用配置和脚本内容提供公共打包模板,提供可视化的操作,方便用户操作。满足基础的构建要求。

    除了公共构建参数外,又提供了自定义的扩展参数,便于各业务在基础构建脚本外扩展自己的业务逻辑。

    2、构建参数模板化

    鲁班支持将不同参数组成一个个构建模板,方便构建人员根据不同的场景打出不同用途的包。

    除了提供的基础测试包、发版包外,支持各业务根据自己的需求定制个性化的构建模板。模板可以简化构建填写内容,有效避免人为填写出错等情况。

    通过模板,可减少用户操作,只填写可变的部分,避免一些关键信息填写错误的问题出现。

    3、触发构建机制

    目前触发机制有两种:自动触发或手动触发

    • 自动触发:开发提交tag自动触发,减少人的介入

    • 手动触发:包括开发在beetle上触发编译操作或在鲁班平台上手动构建需要的包

    beetle上编译触发:和整体开发流程结合,只构建有效版本,避免一些不必要的tag过多占用构建资源

    鲁班平台构建:适用需要特殊场景的包,手动创建

    两种方式,满足了各业务的不同的场景需求,根据自身业务特性去选择触发方式。

    4、构建结果数据存储

    包含构建历史和打包结果的存储。分别记录构建信息和打包结果的信息,结果可查询,另外会存储包大小等信息,可生成报表查看阶段包大小变化等。

    构建结果存储为二维码,方便用户扫码安装。

    5、串联发版能力

    当选择发版模板时,会触发android和ios的发版功能,自动完成发版操作

    发版的同时保存版本数据结果,记录版本历史节点,便于后续版本追溯。

    其他

    构建管理还关联了APP的一些自动化、检查项等配置。例如静态代码扫描,冒烟,UIcase等,本次就不详细介绍了。

    后续静态代码扫描等基础能力进一步完善后,会设定指标对整体APP的流程做一个控制,对APP的交付有一个准入准出规范标准。 

    大致流程如下:

    以上为转转客户端,鲁班提供的构建相关能力,欢迎大家交流讨论~

    作者:孙敏

    > 转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。

    > 关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

  • 相关阅读:
    GO 工程化实践
    【简答题】JavaWeb必问10道简答题
    统计信号处理基础 习题解答10-6
    最新!2025QS世界大学排名公布,中国内地5位高校跻身TOP100
    [附源码]Python计算机毕业设计Django的残障人士社交平台
    this是指向的哪个全局变量,改变this指向的方法有几种?
    Python 数据库——链表
    谷歌『云开发者速查表』;清华3D人体数据集;商汤『通用视觉框架』公开课;Web3极简入门指南;高效深度学习免费书;前沿论文 | ShowMeAI资讯日报
    大学生计算机相关专业有什么血泪建议吗?
    十、pygame小游戏开发
  • 原文地址:https://blog.csdn.net/zhuanzhuantech/article/details/126538661