System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及无人驾驶,具体为一种基于jenkins的适用于无人驾驶代码自动编译的实现方法。
技术介绍
1、目前无人驾驶代码研发过程中,研发开发用的一般为ubuntu x86架构,而实车验证环境为域控,域控为ubuntu arm架构;
2、在ubuntu x86系统上通过交叉编译实现可以在ubuntu arm架构上使用的二进制文件,一般具有以下缺点如下:
3、(1)交叉编译特别耗费cpu资源,导致在ubuntu x86系统上处理速度慢和卡顿。
4、(2)因为研发人员每个人员的编译依赖环境存在不一致的情况,会导致在一个编译环境中编译出的二进制文件在另一个系统中无法运行。
5、而在实车域控拉取代码,在实车上的域控进行编译,同样具有缺点,且缺点如下:
6、(1)研发人员实车域控上拉代码编译,存在在实车域控上现场改代码的情况,如果代码提交不及时会存在gitlab代码管理系统中的代码和实车域控部署代码不一致的情况。
7、(2)代码在实车域控本地上修改,存在代码拷贝不安全的情况。
8、(3)在实车域控上编译,需要在实车域控上安装其他软件,例如vscode、传输软件等,域控系统其他软件占用资源,导致在无人驾驶系统运行时出现丢包等问题。
9、为此,本专利技术提供了一种基于jenkins的适用于无人驾驶代码自动编译的实现方法。
技术实现思路
1、针对现有技术存在的上述不足,本专利技术提供了一种基于jenk
2、本专利技术提供如下技术方案:一种基于jenkins的适用于无人驾驶代码自动编译的实现方法,包括以下模块:
3、代码提交模块,用于开发人员将编译通过的代码提交至gitlab代码管理系统;
4、jenkins自动化模块,与gitlab集成,用于自动拉取gitlab上指定代码库的指定版本代码;
5、docker编译模块,在域控环境中运行,通过定制的docker镜像实现代码的自动编译,支持整体编译和分模块编译;
6、二进制文件推送模块,用于自动推送编译后的二进制文件至配置管理服务器进行备份;
7、下载部署模块,配置在配置管理服务器上,允许现场部署人员通过账号密码访问并下载二进制文件进行实车部署验证;
8、该基于jenkins的适用于无人驾驶代码自动编译的实现方法,包括以下步骤:
9、a.开发人员在本地进行代码开发,并通过vscode在本地进行编译,编译通过后提交至gitlab代码管理系统;
10、b.jenkins与gitlab集成,自动拉取gitlab上的代码到域控环境;
11、c.在域控环境中通过定制的docker镜像运行docker编译模块,进行代码编译;
12、d.编译完成后,通过二进制文件推送模块将编译后的二进制文件推送至配置管理服务器进行备份;
13、e.现场部署人员通过下载部署模块访问配置管理服务器上的目录,下载部署文件进行实车部署验证。
14、优选的,所述jenkins自动化模块配置有与gitlab集成的job,该job包含代码库地址、分支、代码检出到本地的地址等配置信息,通过点击jenkins的“build”按钮自动拉取代码。
15、优选的,所述docker编译模块通过自定义的docker脚本实现本地编译环境的构建及编译,并通过jenkins集成docker脚本实现代码从拉取到编译整个过程的自动化。
16、优选的,所述二进制文件推送模块通过自动推送脚本实现编译后的二进制文件的推送和备份,该推送脚本集成在jenkins中,确保代码从拉取、编译到二进制文件推送和备份的自动化流程。
17、优选的,所述下载部署模块通过在配置管理服务器上部署samba服务,实现通过账号密码访问二进制文件存放的目录地址,方便现场部署人员下载部署文件。
18、与现有技术对比,本专利技术具备以下有益效果:
19、(1)统一编译环境:研发人员不用在自己本地电脑进行编译,统一在同一台域控环境上编译,保证了编译环境和运行的一致性。
20、(2)通过jenkins实现自动编译,研发人员可以在点击jenkins上的“build”按钮后,继续在自己的电脑上进行开发工作,提高开发效率。
21、(3)该技术方案,分模块编译,从gitlab控制感知、定位、规控等各模块代码库权限,无人驾驶整个系统的编译后文件只能通过此方案实现,避免了研发人员在实车域控上拉代码、改代码、现场实车域控编译的情况,从而保证了gitlab代码管理系统中的代码与实车部署代码的一致性。
22、(4)因控制了无法在实车域控系统拉取代码的情况,也就不存在在现场域控上安装vscode等工具编译的情况,保证域控系统环境的干净及稳定运行。
23、(5)整个过程通过jenkins自动化进行,保证了每次编译过程的一致性,提高效率的同时也提高了质量。
本文档来自技高网...【技术保护点】
1.一种基于Jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:包括以下模块:
2.根据权利要求1所述的一种基于Jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:所述Jenkins自动化模块配置有与GitLab集成的Job,该Job包含代码库地址、分支、代码检出到本地的地址等配置信息,通过点击Jenkins的“build”按钮自动拉取代码。
3.根据权利要求1所述的一种基于Jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:所述Docker编译模块通过自定义的Docker脚本实现本地编译环境的构建及编译,并通过Jenkins集成Docker脚本实现代码从拉取到编译整个过程的自动化。
4.根据权利要求1所述的一种基于Jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:所述二进制文件推送模块通过自动推送脚本实现编译后的二进制文件的推送和备份,该推送脚本集成在Jenkins中,确保代码从拉取、编译到二进制文件推送和备份的自动化流程。
5.根据权利要求1所述的一种基于Jenkins的
...【技术特征摘要】
1.一种基于jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:包括以下模块:
2.根据权利要求1所述的一种基于jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:所述jenkins自动化模块配置有与gitlab集成的job,该job包含代码库地址、分支、代码检出到本地的地址等配置信息,通过点击jenkins的“build”按钮自动拉取代码。
3.根据权利要求1所述的一种基于jenkins的适用于无人驾驶代码自动编译的实现方法,其特征在于:所述docker编译模块通过自定义的docker脚本实现本地编译环境的构建及编译,并通过jen...
【专利技术属性】
技术研发人员:黄琰,冯文倩,冯冲,申永刚,
申请(专利权)人:理工雷科智途北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。