一种基于云平台的在线开发与代码托管系统与使用方法与流程

文档序号:26405128发布日期:2021-08-24 16:19阅读:108来源:国知局
一种基于云平台的在线开发与代码托管系统与使用方法与流程

本发明涉及软件自动化编译技术领域,尤其涉及一种基于云平台的在线开发与代码托管系统与使用方法。



背景技术:

现代软件开发已由传统的少量开发人员简单协作转变为群体开发及更复杂的协作。随着软件架构、开发思想和开发工具的发展,软件的架构和功能越来越复杂,开发节奏越来越快,但传统的由开发人员开发、测试人员测试、运维人员部署的形式,存在软件开发错误不能及时发现、人工低级错误时常发生、团队协作效率低下、重复劳动和开发/测试/运维团队对立等问题,从而导致软件无法高质量开发和高效交付。

为了应对和解决以上问题,市面上出现了将软件按照工厂装配线的持续交付(continuousintegration,ci/continuousdelivery,cd),将软件交付管道以快速、自动化和可重复方式从源码生成发布版本,在一定程度上达到软件简单、顺畅、高效的开发、集成和发布。但随着信息技术应用创新和国产自主的发展,这些ci/cd工具并不能很好适应和解决多平台,例如异构软硬件和多环境下的软件自动化开发集成、测试与部署的问题。



技术实现要素:

为解决上述技术问题,本发明提出了一种基于云平台的在线开发与代码托管系统与使用方法,所述基于云平台的在线开发与代码托管系统与使用方法,用以解决ci/cd工具并不能很好适应和解决多平台,例如异构软硬件和多环境下的软件自动化开发集成、测试与部署的问题。

根据本发明的第一方面,提供一种基于云平台的在线开发与代码托管系统,所述系统,包括:

所述基于云平台的在线开发与代码托管系统,包括代码托管模块、流程定制模块、代码检查模块、编译构建模块、软件测试模块、联调验证模块、软件封装模块、系统组装模块;

所述代码托管模块:用于监听用户行为并触发代码操作事件,提供在线代码托管服务;

所述流程定制模块:用于定义研发规则及研发流程;

所述代码检查模块:用于对源代码进行缺陷检查,生成检查报告;

所述编译构建模块:用于基于事件机制及配置的研发流程对源代码进行自动化编译;

所述软件测试模块:用于对编译生成的软件进行自动化测试;

所述联调验证模块:用于对软件及软件间的依赖关系执行集成测试和联调验证;

所述软件封装模块:用于对测试通过的软件按照标准格式进行封装,并入库;

所述系统组装模块:用于对多个软件按照其依赖环境和配置信息进行系统组装。

根据本发明第二方面,提供一种基于云平台的在线开发与代码托管系统的使用方法,所述方法包括:

步骤s201:用户启动所述基于云平台的在线开发与代码托管系统,触发代码操作事件,申请代码托管;

步骤s202:所述基于云平台的在线开发与代码托管系统基于定制的流程和规则,检查源代码;

步骤s203:所述基于云平台的在线开发与代码托管系统编译源代码,对编译后的软件进行测试及联调验证;

步骤s204:所述基于云平台的在线开发与代码托管系统封装软件并进行系统组装。

根据本发明第三方面,提供一种基于云平台的在线开发与代码托管系统,包括:

处理器,用于执行多条指令;

存储器,用于存储多条指令;

其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的基于云平台的在线开发与代码托管系统的使用方法。

根据本发明第四方面,提供一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的基于云平台的在线开发与代码托管系统的使用方法。

根据本发明的上述方案,采用基于云平台的在线开发与代码托管系统进行软件的辅助开发,一方面可有有效的减少代码的变更和审核时间,加快软件发布周期;另一方面可以通过自动化测试覆盖软件的各个功能点,确保软件的开发质量,提高了软件开发的效率和开发质量。采用基于云平台的在线开发与代码托管系统引入了自动化编译、测试和部署,大大降低了以往开发人员、测试人员和运维人员的重复劳动;同时,由于软件的自动编译与自动部署,可以确保软件的发布周期更短,针对性更强,并提供了环境的恢复与保存服务。这样可以让客户更快的参与产品新特性体验,并快速响应客户的需求变更,从而有效提高了客户的体验和满意度。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明提供如下附图进行说明。在附图中:

图1为本发明一个实施方式的基于云平台的在线开发与代码托管系统结构示意图;

图2为本发明一个实施方式的基于云平台的在线开发与代码托管系统使用时的流程示意图。

具体实施方式

首先结合图1说明本发明一个实施方式的基于云平台的在线开发与代码托管系统结构。如图1所示,所述基于云平台的在线开发与代码托管系统,包括代码托管模块、流程定制模块、代码检查模块、编译构建模块、软件测试模块、联调验证模块、软件封装模块、系统组装模块;

所述代码托管模块:用于监听用户行为并触发代码操作事件,提供在线代码托管服务;

所述流程定制模块:用于定义研发规则及研发流程;

所述代码检查模块:用于对源代码进行缺陷检查,生成检查报告;

所述编译构建模块:用于基于事件机制及配置的研发流程对源代码进行自动化编译;

所述软件测试模块:用于对编译生成的软件进行自动化测试;

所述联调验证模块:用于对软件及软件间的依赖关系执行集成测试和联调验证;

所述软件封装模块:用于对测试通过的软件按照标准格式进行封装,并入库;

所述系统组装模块:用于对多个软件按照其依赖环境和配置信息进行系统组装。

本实施例的基于云平台的在线开发与代码托管系统,该系统基于云平台实现资源自动分配和调度,并提供方法和工具以支持软件在线开发与代码托管。

所述代码托管模块:用于监听用户行为并触发代码操作事件,提供在线代码托管服务,其中:

所述代码托管模块提供基于git、svn等方式的在线服务,支持开发人员在线提交软件源代码,并对代码提交行为进行事件监控。

所述代码托管模块包括代码库判断子模块、监听子模块及通知子模块。

所述代码库判断子模块用于基于用户的代码托管申请,判断是否存在相应的代码库,如果不存在相应的代码库,则创建代码库,然后将代码存入该相应的代码库;如果存在相应的代码库,则将代码存入该相应的代码库;

所述监听子模块用于创建监听任务,监听用户行为是否为预定义事件,若为预定义事件,则触发与该用户行为对应的事件;

所述预定义事件包括但不限于提交代码、合并代码、克隆代码。

所述通知子模块用于触发与该用户行为事件后,通知监听器,执行用户行为事件的后续操作。

所述流程定制模块:用于定义研发规则及研发流程,其中:

该流程定制模块对流程,例如自动编译、自动封装、自动部署等流程进行编排。

进一步地,所述流程定制模块提供对软件自动化编译、构建、检查等规则和行为的支持。基于图形化界面,开发人员能够对软件进行各类规则的撰写和编排。流程定制模块支持软件源代码编译规则、构建规则、检查规则、测试规则、数据校验规则、封装规则、部署规则等的制定,并能够对已经编辑的规则按照工作流的方式进行流程编排,从而实现定制化的软件持续集成支持。

所述代码检查模块:用于对源代码进行缺陷检查,生成检查报告,其中:

当所述代码托管模块监测到预定义事件发生时,所述代码检查模块根据配置信息判断是否需要执行代码检查操作,如果不需要则跳过代码检查;如果需要则执行代码检查。代码检查包括但不限于静态检查、台面检查,经过若干自动检查,会根据检查结果生成html格式的检查报告,并提供在线浏览服务。

所述编译构建模块:用于基于事件机制及配置的研发流程对源代码进行自动化编译,其中:

所述编译构建模块检测到满足自动编译构建的行为和事件后,结合流程定制模块定制的流程,执行软件编译构建工作。

所述编译构建模块包括第一判断子模块、下载子模块、完整性检查子模块、第二判断子模块、镜像任务构建子模块及执行部署子模块。

所述第一判断子模块,用于判断云平台上是否存在预设的编译环境,如果存在,则加载编译环境;如果不存在,则根据配置文件自动构建编译环境并保存;

所述编译环境可以是物理机、虚拟机、docker镜像等。

所述下载子模块,通过云平台加载编译环境镜像,设置网络、创建唯一的编译目录,并从代码托管模块下载克隆代码。

完整性检查子模块,用于在代码下载完毕后执行代码完整性检查,检查无误后首先调用编译前置任务与脚本,之后执行代码编译任务与脚本,编译成功后执行代码编译后置任务与脚本。

所述第二判断子模块,用于判断编译是否成功,如果成功,则构建镜像;如果失败,则判定构建失败,进入结束状态。

进一步地,所述第二判断子模块还记录编译日志,用户能够在线查看编译进度和编译信息。

本实施例中,判定依据为所有的编译任务与脚本无出错,即为编译成功,否则为编译失败。同时记录所有的编译日志,用户可在线查看编译进度和编译信息。

所述镜像任务构建子模块,用于构建镜像任务,所述镜像任务分为全镜像保存构建方式和全新镜像构建方式。

本实施例中,镜像任务的类型可以根据用户配置进行选择,镜像类型可以根据云平台的服务类型选择为虚拟机镜像或者docker镜像。

所述执行部署子模块,用于在镜像构建完成后执行部署镜像操作,由云平台根据配置信息划分出相关资源,同时加载镜像,启动已编译的软件系统,并执行软件基础功能服务验证,如果验证成功则表明构建成功。

所述软件测试模块:用于对编译生成的软件进行自动化测试,其中:

所述软件测试模块,用于在软件成功构建以后,执行软件测试任务。软件测试任务支持单元测试、功能测试、接口测试、性能测试等。首先判断是否需要执行自动测试,如果判断结果为是,则根据配置信息依次执行预设测试脚本和测试用例;如果判断结果为否,则执行人工测试。测试完毕后生成测试报告,并提供在线浏览服务。

所述联调验证模块:用于对软件及软件间的依赖关系执行集成测试和联调验证,其中:

所述联调验证模块根据配置信息和实际需要执行联调测试;云平台根据用户配置信息和联调环境信息,推送最新版本到联调环境,并调用预设测试任务和脚本,执行联调测试。

所述软件封装模块:用于对测试通过的软件按照标准格式进行封装,并入库,其中:

所述软件封装模块,用于在软件经过测试后,基于云平台的在线开发与代码托管系统将已编译的软件进行封装,根据预设配置信息选择做镜像封装、本地封装或者手工封装,封装完毕后形成标准的软件段。

所述系统组装模块:用于对多个软件按照其依赖环境和配置信息进行系统组装,其中:

所述系统组装模块,用于将多个软件及其依赖环境统一执行系统组装。用以支持大型完整的系统的部署服务。组装后的软件/系统会提交到资源库中进行保存,最终会根据实际需要进行部署安装,并最终提供给外部系统使用。

图2为本发明一个实施方式的基于云平台的在线开发与代码托管系统使用时的流程示意图,如图2所示,所述基于云平台的在线开发与代码托管系统的使用方法,包括:

步骤s201:用户启动所述基于云平台的在线开发与代码托管系统,触发代码操作事件,申请代码托管;

步骤s202:所述基于云平台的在线开发与代码托管系统基于定制的流程和规则,检查源代码;

步骤s203:所述基于云平台的在线开发与代码托管系统编译源代码,对编译后的软件进行测试及联调验证;

步骤s204:所述基于云平台的在线开发与代码托管系统封装软件并进行系统组装。

本发明实施例进一步给出一种基于云平台的在线开发与代码托管系统,包括:

处理器,用于执行多条指令;

存储器,用于存储多条指令;

其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的基于云平台的在线开发与代码托管系统的使用方法。

本发明实施例进一步给出一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的基于云平台的在线开发与代码托管系统的使用方法。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,实体机服务器,或者网络云服务器等,需安装ubuntu/uos等操作系统)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1