58同城网站建设案例,网站建设外包价格,android应用开发框架,蜜芽加密通道入口2021摘要#xff1a; AliOS Things在快速的迭代进化之中#xff0c;如何保证提交的代码质量#xff0c;并保证在各个硬件平台上的稳定性#xff0c;是一个非常大的挑战。同时物联网硬件碎片化#xff0c;资源紧张#xff0c;对持续集成#xff08;CI#xff09;系统也提出了…摘要 AliOS Things在快速的迭代进化之中如何保证提交的代码质量并保证在各个硬件平台上的稳定性是一个非常大的挑战。同时物联网硬件碎片化资源紧张对持续集成CI系统也提出了特殊的要求。本文介绍AliOS Things的CI系统的实现方式及思考。
点此查看原文http://click.aliyun.com/m/41052/
背景简介
AliOS Things 是一款由阿里巴巴开发的轻量级物联网操作系统。拥有丰富的组件实时操作系统内核连接协议库、文件系统、libc接口、FOTA、Mesh、语音识别、安全等并支持多样的芯片架构ARM系列XtensaC-Sky等。可广泛应用在智能家居智慧城市工业等领域使万物互联更容易降低物联网开发门槛。
AliOS Things在快速的迭代进化之中如何保证提交的代码质量并保证在各个硬件平台上的稳定性是一个非常大的挑战。同时物联网硬件碎片化资源紧张对CI系统也提出了特殊的要求。本文介绍AliOS Things的CI系统的实现方式及思考。
AliOS Things 持续集成CI系统简介
AliOS Things 持续集成系统是与代码仓库紧密结合的自动化代码验证测试系统。系统会对开发者提交的每一次代码合入自动运行一次全平台编译和全功能验证测试并通知开发者测试结果。系统的运行流程为
开发者提交代码(merge request) PrecheckPrebuild系统自动做代码检查和编译 PrevalidateuDevice Center平台自动完成AliOS Things各项功能的在设备上的验证测试 与一般的CI系统不同AliOS Things的功能验证是需要运行在多种多样的嵌入式芯片中的这里需要解决的难题是如何屏蔽多样化嵌入式系统的差异来做自动化CI测试我们开发了uDevice Ceter来解决这个问题。uDevice Center是一个在线的设备模组/开发板开发调试平台通过统一方式屏蔽了开发板的硬件差异让自动测试程序可以调用统一的接口来实现测试需要的操作固件烧写板子控制启动/停止/重启)shell命令交互等。AliOS Things 持续集成系统的架构如上图所示。系统目前主要支持code.aliyun代码仓库github支持添加中。除代码仓库外系统主要还包括代码检查与编译系统(Precheck Prebuild)自动测试平台和uDevice Center在线设备平台。下面我们将详细介绍各项子系统的功能。
Precheck代码检查系统 Precheck 是自动化的代码静态扫描和质量监控系统能帮助开发者提高代码质量预防代码中的潜在风险提高开发效率。系统的大致工作流程为
用户提交代码到仓库仓库发送请求给precheck平台 平台会自动获取用户所提交的代码pull到本地进行pmdfindbugsandroidlint 等静态代码扫描对扫描出来的告警做增量存量判断 执行完成后向仓库提交对应的comments并自动通过邮件发送报告给用户。 Precheck系统架构如下图所示。系统是一个弹性扩容的架构可以方便地根据开发需求增减服务容量。Prebuild分布式编译系统
Prebulild 是分布式的编译系统使用机器集群来自动完成AliOS Things在多样的嵌入式平台下的代码编译构建帮助开发者快速验证所提交代码的编译正确性。系统的大致工作流程为
开发者提交代码到仓库仓库触发Prebuild系统启动自动编译任务 Prebuild系统利用集群分布式地完成编译构建并将编译结果报告给仓库 编译通过的话Prebuild系统会触发后端的自动测试的运行 Prebuild系统的架构如下图所示。Prebuild系统是全Docker化的系统能很方便快速地按需增减容量。PrevalidateuDevice Center自动测试验证系统
Prevalidate是一个通用自动化测试平台其能力包括组织管理用户编写的测试程序(java/python/shell)将测试程序有机组合为测试任务按需求创建/排队/分发/执行/监控/管理测试任务获取测试任务执行结果并通知用户等。Prevalidate系统能在PC上运行各种程序但并不能运行AliOS Things在各种嵌入式硬件上的固件并完成功能验证所以我们还开发了uDevice Center一个在线的硬件模组/开发板/设备开发测试平台。uDevice Center用网络连接着AliOS Things支持的各种硬件开发板/模组/设备等并通过统一的接口屏蔽了各种硬件在操作控制上的差异从而让自动测试程序能够统一操作各种不同的开发板。uDevice Center也容易扩展对接各种AliOS Things支持的设备。
在这套系统中Prevalidate管理并运行自动测试程序而uDevice Center为自动测试程序提供交互运行的具体硬件。我们开发了AliOS Things的各项功能测试程序并上传到Prevalidate平台作为测试项再把相关联的测试项组合成可以被触发执行的PV测试任务。当用户提交代码并被Prebuild系统编译通过后
Prebuild系统会触发Prevalidate系统创建PV测试任务 Prevalidate系统对PV测试任务排队从系统的slave cluster中选择合适的空闲机器执行任务 任务的各项测试脚本被执行测试程序从uDevice Center平台分配合适型号的设备将编译镜像烧录到设备中并使用标准接口与设备交互完成AliOS Things各项功能的测试 Prevalidate系统将测试结果报告给代码仓库并邮件通知相关人员。 PrevalidateuDevice Center系统的架构如下图所示系统具有很强的扩展性。小结
持续集成CI系统支撑着AliOS Things的快速进化。后续我们也计划把这套能力开发给广大的开发者和合作伙伴共同提升物联网时代的开发效率。