1、工具对软件质量提升的实践,2024.9.19,主讲人:柳 涛,环境治理难题,代码环境解决方案,编译环境解决方案,1,2,3,工具链环境解决方案,4,ThunderX Confidential,3,环境治理难题,1,环境治理难题,ThunderX Confidential,4,面对多个开发工具、工具版本升级、众多的使用人员如何对众多的开发工具链进行版本管理、备份管理,工具环境,面对多项目、多模块、多仓库、多分支的代码环境我们如何保证代码不要拉错,代码环境,面对多样的芯片、操作系统、数据库我们如何保证代码编译环境的一致性和追溯性,编译环境,02,01,三大环境难题,03,ThunderX Conf
2、idential,5,代码环境解决方案,2,代码环境的特点,ThunderX Confidential,6,SOC,MCU,Midd,Alg,多项目,多业务,多仓库,多分支,不同的项目需要用不同业务模块,不同的模块需要建立对应的仓库,不同的仓库可能具备不同的分支,代码环境的治理方案,ThunderX Confidential,7,规范仓库命名规则SOC仓库:基于高通分支功能拆解的功能模块名称MCU仓库:MCU型号中间件仓库:中间件+模块名称算法仓库:算法+功能名称,规范分支命名规则SOC:高通基线名_Platform_Project_Develop高通基线名_Platform_Project_
3、Master高通基线名_Platform_Project_Release中间件:Project_DevelopProject_MasterProject_Release,MCU:Project_DevelopProject_MasterProject_Release,SUP.8 BP1:定义用于识别要接受配置管理的相关工作产品的选择标准。根据定义的选择标准识别和记录配置项。,SUP.8 BP3:注 7:这可能包括针对不同配置项类型的特定机制,例如分支和合并管理或检出控制。,代码环境的治理方案,ThunderX Confidential,8,通过命名的标准化、Manifest文件的标准化管理最大
4、程度降低代码拉错、漏拉的风险,Manifest文件,标准化代码拉取方式,定义仓库使用策略,定义分支使用策略,定义Manifest清单策略,Manifest清单列入CI LIST,如需修改清单要走变更流程,ThunderX Confidential,9,编译环境解决方案,3,编译环境的特点,ThunderX Confidential,10,什么是编译环境?,如果环境不受控会怎么样?,编译环境解决方案,ThunderX Confidential,11,K-GAS 5.8.6章节 2046条款要求:在构建环境中使用的所有宏(macros)和定义(definitions)必须被完整地记录下来。,根据开
5、发需要设计编译环境,架构设计师,试运行环境可用性,研发团队,根据设计要求做成DockerFile,CICD,DockerFile纳入CI LIST,配置管理员,配置管理员,基于Harbor对Docker镜像做配置管理,编译环境解决方案,ThunderX Confidential,12,准备开始编译软件,开发人员,判断本地编译环境是否为最新,系统运行,自动使用最新环境执行代码编译,开始编译,完成编译后自动删除本次容器,编译完毕,根据需求执行测试,代码测试,团队执行释放评审,Release Audit,对代码进行基线TAG,代码打基线,数据库,项目信息,编译流水线JOB ID,代码基线快照TAG,
6、编译使用的镜像版本,编译执行的时间,.,ThunderX Confidential,13,工具环境解决方案,4,工具环境的特点,ThunderX Confidential,14,工具数量多,版本多,使用人员多,工具环境解决方案,ThunderX Confidential,15,Kubernetes Master,Node 1,Pod Jira,Pod Jenkins,Pod Gitlab,Pod xxx,Node 2,Pod Jenkins,Pod xxx,Pod xxx,P