本发明属于汽车软件开发,具体涉及一种基于jenkins和mercurial的汽车嵌入式软件集成方法及系统。
背景技术:
1、在车载嵌入式软件开发过程中,通常采用v模型进行开发,v模型大体可以划分为以下不同的阶段,即需求分析、概要设计、详细设计、软件编码、软件集成、集成测试、系统测试、验收测试。实际的开发过程中,软件编码、软件集成、集成测试和系统测试需要反复迭代,而应用层(asw)、中间层(rte)、底层(bsw)等不同层级的软件大多是由不同的团队来开发。开发到一定阶段后需要对各层级的软件进行集成编译,然后测试验证等。软件集成过程需要将不同层级的代码通过合适的架构组合到一起形成集成工程,选择适配的编译环境,将集成工程进行编译,生成目标代码,交付给测试人员进行测试或者刷车。
2、传统过程是将底层代码、应用层代码、中间层代码从版本控制系统(如mercurial、git、svn等)中检出,集成,编译,再提交到版本控制系统中,并依据需求打基线,一个熟练的集成人员需要至少30分钟时间完成上述过程,对于规模大、结构复杂的项目,甚至会需要花费数几个小时,并且可能因人的因素发生集成的代码版本和要求的版本不一致的情况。这样一来,当迭代频繁,集成需求多时,将消耗大量的人力、时间来完成集成工作,且无法有效的避免人为因素引入的集成版本错误的问题。
3、基于以上弊端,提供一种基于jenkins和mercurial的汽车嵌入式软件集成方法及系统是十分有必要的。
技术实现思路
1、针对上述提出的技术问题,本发明提供一种基于jenkins和mercurial的汽车嵌入式软件集成方法及系统,旨在有效提高汽车嵌入式软件产品的质量和研发效率。
2、第一方面,本发明提供了一种基于jenkins和mercurial的汽车嵌入式软件集成方法,该方法包括如下步骤:
3、s1、将应用层的模型文件和底层的arxml文件上传至mercurial;
4、s2、在jenkins中构建集成任务,设置通用化参数;
5、s3、当jenkins中的集成任务被触发执行时,从mercurial代码库中拉取相应的集成工程;
6、s4、识别出集成工程中所有的应用层模型,分别生成模型代码;
7、s5、基于jenkins中构建的集成任务的各参数及相关脚本,对s4中生成的所有模型代码进行集成和编译,生成目标文件;
8、s6、将目标文件上传到mercurial;
9、s7、将集成结果和控制台输出日志发送至相关人员的邮箱中。
10、具体地,通用化参数包括集成工程版本、用于模型代码生成的核数、是否清除掉旧的构建、是否清除掉构建前的模型代码、某个模型代码生成错误时是否继续进行下一个模型的代码生成,以及工程自身的个性化参数。
11、具体地,个性化参数为是否生成os操作系统,用于控制是否在jenkins上生成os操作系统。
12、具体地,在步骤s3中,在jenkins上选择和填写需要集成的项目参数配置后方可启动集成任务。
13、具体地,每次集成都会识别出本次集成的集成工程版本与上一次集成的集成工程版本之间的差异,当集成工程版本不同时,对上述所有模型代码进行集成。
14、具体地,集成结束后,jenkins自动通过邮件将集成结果和控制台输出日志通过邮件反馈给相关人员。
15、具体地,根据服务器性能,设置用于模型代码生成的核数。
16、第二方面,本发明还提供了一种基于jenkins和mercurial的汽车嵌入式软件集成系统,该系统包括:构建模块,集成模块和反馈模块;
17、构建模块用于将应用层的模型文件和底层的arxml文件上传至mercurial;在jenkins中构建集成任务,设置通用化参数;
18、集成模块用于当jenkins中的集成任务被触发执行时,从mercurial代码库中拉取相应的集成工程;识别出集成工程中所有的应用层模型,分别生成模型代码;基于jenkins中构建的集成任务的各参数及相关脚本,对s4中生成的所有模型代码进行集成和编译,生成目标文件;
19、反馈模块用于将目标文件上传到mercurial;将集成结果和控制台输出日志发送至相关人员的邮箱中。
20、第三方面,本发明提供了一种计算机存储介质,计算机存储介质存储有程序指令,其中,在程序指令运行时控制计算机存储介质所在设备执行上述任意一项的基于jenkins和mercurial的汽车嵌入式软件集成方法。
21、第四方面,本发明提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的基于jenkins和mercurial的汽车嵌入式软件集成方法。
22、本发明公开一种基于jenkins和mercurial的汽车嵌入式软件集成方法及系统,将集成工程从mercurial中检出、集成、编译、再提交mercurial等一系列工作交给服务器来自动化完成,集成人员只需要在jenkins上选择和填写需要集成的项目参数配置即可,这样一来,集成一个项目只需要占用集成人员几分钟的时间,且能快速识别出新的一版集成工程与上一版集成工程的差异,并能第一时间收到构建结果和控制台输出的邮件通知,大幅提高了集成效率及集成的可靠性。同时,能保证用于集成的服务器在意外断电后重新来电时能自动处于准备工作状态,减少了人工维护的时间成本。
1.基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,所述通用化参数包括集成工程版本、用于模型代码生成的核数、是否清除掉旧的构建、是否清除掉构建前的模型代码、某个模型代码生成错误时是否继续进行下一个模型的代码生成,以及工程自身的个性化参数。
3.根据权利要求2所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,所述个性化参数为是否生成os操作系统,用于控制是否在jenkins上生成os操作系统。
4.根据权利要求1所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,在所述步骤s3中,在jenkins上选择和填写需要集成的项目参数配置后方可启动所述集成任务。
5.根据权利要求1所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,每次集成都会识别出本次集成的集成工程版本与上一次集成的集成工程版本之间的差异,当集成工程版本不同时,对所述所有模型代码进行集成。
6.根据权利要求1所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,集成结束后,jenkins自动通过邮件将所述集成结果和所述控制台输出日志通过邮件反馈给相关人员。
7.根据权利要求2所述的基于jenkins和mercurial的汽车嵌入式软件集成方法,其特征在于,根据服务器性能,设置所述用于模型代码生成的核数。
8.基于jenkins和mercurial的汽车嵌入式软件集成系统,用于实现如权利要求1-7任一项所述的方法,其特征在于,包括构建模块,集成模块和反馈模块;
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序指令,其中,在所述程序指令运行时控制所述计算机存储介质所在设备执行权利要求1至7中任意一项所述的基于jenkins和mercurial的汽车嵌入式软件集成方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的基于jenkins和mercurial的汽车嵌入式软件集成方法。