CN106970818A - 一种用于Linux平台的软件持续集成方法及装置 - Google Patents

一种用于Linux平台的软件持续集成方法及装置 Download PDF

Info

Publication number
CN106970818A
CN106970818A CN201710186340.1A CN201710186340A CN106970818A CN 106970818 A CN106970818 A CN 106970818A CN 201710186340 A CN201710186340 A CN 201710186340A CN 106970818 A CN106970818 A CN 106970818A
Authority
CN
China
Prior art keywords
integrated
compiling
platform
software
software code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710186340.1A
Other languages
English (en)
Inventor
李发明
张勤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tongyou Feiji Science and Technology Co., Ltd.
Original Assignee
Shenzhen City Rui Bo Deposit Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen City Rui Bo Deposit Information Technology Co Ltd filed Critical Shenzhen City Rui Bo Deposit Information Technology Co Ltd
Priority to CN201710186340.1A priority Critical patent/CN106970818A/zh
Publication of CN106970818A publication Critical patent/CN106970818A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于Linux平台的软件持续集成方法,包括:步骤一,调用持续集成工具获取待集成软件代码;步骤二,调用编译平台对所述待集成软件代码进行集成编译;步骤三,判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;步骤四,调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;步骤五,输出集成测试结果及集成测试日志。其次,本发明还公开了一种用于Linux平台的软件持续集成装置,解决了现有技术中软件开发、测试以及发布的效率低的技术问题。

Description

一种用于Linux平台的软件持续集成方法及装置
技术领域
本发明涉及计算机软件开发技术领域,尤其涉及一种用于Linux平台的软件持续集成方法及装置。
背景技术
持续集成(Continuous integration)简称CI,是一种软件开发实践,可以让团队在持续集成的基础上收到反馈并加以改进,而不必等到开发的后期才寻找和修复缺陷。持续集成的重要要素为:统一的代码库;CI服务器;自动化测试和构建的脚本;Slaves。其中CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。
随着软件项目复杂度的增加,每一次软件项目集成都需要进行持续集成环境的搭建,且软件开发人员需要了解各种服务器的部署方式、环境配置、搭建不同平台的测试环境,对软件开发、测试以及发布的效率有很大的影响。
发明内容
本发明为解决背景技术中的技术问题,提供一种用于Linux平台的软件持续集成方法及装置,能将软件开发的各个环节都统一起来,提高软件开发、测试以及发布的效率。
本发明提供的技术方案是:
一种用于Linux平台的软件持续集成方法,包括:
步骤一,调用持续集成工具获取待集成软件代码;
步骤二,调用编译平台对所述待集成软件代码进行集成编译;
步骤三,判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
步骤四,调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
步骤五,输出集成测试结果及集成测试日志。
进一步的,所述步骤二中的编译平台对所述待集成软件代码进行集成编译具体是指:控制所述编译平台启动虚拟机,通过所述编译平台中的虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
进一步的,在所述调用编译平台对所述待集成软件代码进行集成编译的步骤之前还包括,判断所述待集成软件代码所采用的编译方案信息,所述编译平台选用与所述待集成软件代码相匹配的编译方案信息进行集成编译。
进一步的,在步骤五之后还包括,步骤六:向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。
进一步的,所述步骤六中向归档平台发送归档指令具体是指:调用所述测试平台发送归档指令,通知所述编译平台对编译后的所述待集成的软件代码进行归档,并控制所述编译平台将所述归档指令发送给归档平台。
本发明还公开了一种用于Linux平台的软件持续集成装置,包括:
获取单元,用于调用持续集成工具获取待集成软件代码;
编译单元,用于调用编译平台对所述待集成软件代码进行集成编译;
第一判断单元,用于判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
测试单元,用于调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
输出单元,用于输出集成测试结果及集成测试日志。
进一步的,所述编译单元还包括:虚拟机启动单元,用于控制所述编译平台启动虚拟机,通过所述编译平台中的虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
进一步的,软件持续集成装置还包括:第二判断单元,用于判断所述待集成软件代码所采用的编译方案信息,所述编译平台选用与所述待集成软件代码相匹配的编译编译方案信息进行集成编译。
进一步的,软件持续集成装置还包括归档单元,用于向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。
进一步的,所述归档单元包括归档指令传递单元,用于调用所述测试平台发送归档指令,通知所述编译平台对编译后的所述待集成的软件代码进行归档,并控制所述编译平台将所述归档指令发送给归档平台。
本发明的有益效果在于:通过整合持续集成工具、软件编译平台、软件测试平台,具体是调用持续集成工具获取待集成软件代码;调用编译平台对所述待集成的软件代码进行集成编译,将待集成的软件编译为二进制或其它格式的程序代码;其次判断集成编译过程是否有错误,如果有错误,则反馈编译错误的提示信息,如果没有错误,则将编译后的待集成软件代码复制到集成软件输出平台;调用测试平台对集成编译后的待集成软件代码进行集成测试,最后将集成测试结果以及集成测试日志反馈给相关的开发/测试人员,以及时进行软件修复。解决了现有技术中软件开发、测试以及发布的效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所提供的软件持续集成方法流程图;
图2为本发明实施例所提供的软件持续集成方法中具体各平台连接示意图;
图3为本发明实施例所提供的软件持续集成装置框图。
具体实施方式
下面结合图1-3对本发明提供的技术方案进行更为详细的阐述。
以及列举本发明的一些可选实施例的方式,对本发明的技术方案(包括优选技术方案)做进一步的详细描述。需要说明的是:本实施例中的任何技术特征、任何技术方案均是多种可选的技术特征或可选的技术方案中的一种或几种,为了描述简洁的需要本文件中无法穷举本发明的所有可替代的技术特征以及可替代的技术方案,也不便于每个技术特征的实施方式均强调其为可选的多种实施方式之一,所以本领域技术人员应该知晓:可以将本发明提供的任意技术手段进行替换或将本发明提供的任意两个或更多个技术手段或技术特征互相进行组合而得到新的技术方案。本实施例内的任何技术特征以及任何技术方案均不限制本发明的保护范围,本发明的保护范围应该包括本领域技术人员不付出创造性劳动所能想到的任何替代技术方案以及本领域技术人员将本发明提供的任意两个或更多个技术手段或技术特征互相进行组合而得到的新的技术方案。
本发明提供了一种用于Linux平台的软件持续集成方法,如图1所示,包括:
S10,调用持续集成工具获取待集成软件代码;
持续集成工具例如CruiseControL、hudson、jenkins以及Continuum。在软件开发项目中,通过持续集成,软件开发成员频繁集成他们的工作成果,通常每个人每天可能集成多次,而这个过程即是通过持续集成工具不断进行软件版本的发布/测试,持续集成工具获取待集成软件的代码。
S20,调用编译平台对所述待集成软件代码进行集成编译;
在持续集成工具获取待集成软件的代码后,调用编译平台对所述待集成软件代码进行集成编译,具体可以是:通过虚拟机中的预存的脚本使用Git获取待集成软件代码,进行编译。其中虚拟机具体是指通过软件模拟、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具体包括各种基于KVM的虚拟机,通过在虚拟机中预存的脚本获取持续集成工具所获得的软件代码,并进行编译,将软件代码编译为二进制或其它格式的程序代码。
S30,判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
判断编译平台对软件代码的编译是否出错,如果出现错误,则给出编译错误的提示,若没有错误,则将编译完成的软件代码复制到集成软件输出平台,使得开发/测试人员可以通过软件输出平台所提供的CIFS共享得到可用的软件包。
S40,调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
其中测试平台由一台或多台服务器组成,用于运行测试的各种虚拟机,具体包括不同客户端平台、不同浏览器以及不同的硬件配置,具体的,在构建虚拟机时便已准备好测试脚本以及测试工具,通过调用测试平台的自动化测试功能,对从软件输出平台复制已编译完成的软件代码进行测试。
S50,输出集成测试结果及集成测试日志;
输出测试平台对已编译完成软件代码的集成测试结果以及集成测试日志,以使得相关的开发/测试人员能够通过测试结果以及测试日志的反馈结果,及时进行改进,而不用等到开发周期的后期才寻找和修复缺陷。
本实施例所提供的持续集成方法通过整合持续集成工具、软件编译平台、软件测试平台,具体是调用持续集成工具获取待集成软件代码;调用编译平台对所述待集成的软件代码进行集成编译,将待集成的软件编译为二进制或其它格式的程序代码;其次判断集成编译过程是否有错误,如果有错误,则反馈编译错误的提示信息,如果没有错误,则将编译后的待集成软件代码复制到集成软件输出平台;调用测试平台对集成编译后的待集成软件代码进行集成测试,最后将集成测试结果以及集成测试日志反馈给相关的开发/测试人员,以及时进行软件修复。
本实施例通过将软件开发的各个环节都统一起来,以实现软件开发过程中的所有步骤,且软件开发人员无需了解各种服务器的部署方式、环境配置,且无需针对不同的软件搭建不同的编译、测试环境,便可以在软件开发的过程中频繁地集成工作成果,提高了软件开发、测试以及发布的效率。
进一步的,S20中的编译平台对所述待集成软件代码进行集成编译具体是指:控制所述编译平台启动虚拟机,通过所述编译平台中的虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
具体的,在虚拟机启动之前,通过事先搭建多种编译环境,使得在对软件代码进行编译的过程中,能够多采用不同编译方式的代码进行编译,以实现根据待集成的软件代码自动构建编译环境,提高软件编译的效率;同时,获取所需的第3方库文件以及压缩工具,具体的,压缩工具包括但不限于HTML压缩工具、CSS压缩工具以及JavaScript压缩工具,通过压缩工具将已编译完成的软件代码打包进行保存。
进一步的,在S20以前,还包括:判断所述待集成软件代码所采用的编译方案信息,所述编译平台选用与所述待集成软件代码相匹配的编译方案信息进行集成编译。编译方案包括编译方式,例如,判断源软件代码的编译方式是C/C++编译代码、python编译代码或者html/css/js压缩代码。通过在编译之前对源软件代码的编译方式进行判断,能准确快速地搭建编译环境,提高编译的准确性以及效率。
进一步的,在S50后还包括S60:向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。具体的,归档平台发送归档指令具体是指:调用所述测试平台发送归档指令,通知所述编译平台对编译后的所述待集成的软件代码进行归档,并控制所述编译平台将所述归档指令发送给归档平台。
归档平台通过代码软件管理工具,例如Git客户端拉取代码,同时通过CIFS共享将软件输出平台中已编译的软件一同通过zip打包。其中,Git是运行于Linux平台的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,其采用的是分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流更加方便,且Git速度很快,对于大型的软件开发项目而言更加重要。Git本身并不需要有独立的服务器,但为了方便管理及代码版本的备份,本实施例中配置了一台Git服务器用于存放代码。
进一步的,归档平台进行归档之后,反馈所述已编译完成的软件代码的路径和/或归档平台的归档路径和/或测试结果及测试日志。通过反馈编译平台已编译完成的软件代码路径、通过测试平台获取的测试结果以及测试日志,使得相关的开发/测试人员能够及时的发现软件开发过程中存在的缺陷,及时地做出修复,提高软件开发、测试以及发布的效率。
下面通过一个具体的例子来详细说明上述方法是如何实现的,其中各平台之间的连接关系如图2所示。
其中GlusterFS共享卷是分布式集群文件系统,具体由多台服务器组成,可建立多个目录,下面以一种目录的设置方式与各平台的关联关系进行说明:
/testvm:用于存放“测试平台”使用的基于KVM的虚拟机及其运行环境,且该目录通过NFS共享,并配置为只允许“测试平台”所在主机可以访问。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,提高
/testvmtemp:用于存放“测试平台”使用的基于KVM的虚拟机的模板文件,且该目录通过NFS共享,并配置为只允许“测试平台”所在主机以读写方式访问。
/ciweb:用于存放CI平台中的程序文件,该目录通过NFS共享,并配置为只允许“CI平台”所在主机以只读方式访问。
/ciatta:用于存放CI平台中用于上传的各种附件,通过NFS共享,并配置为只允许“CI平台”所在主机以读写方式访问。
/db:用于存放数据库平台,例如MySQL数据库文件,其为关联数据库管理系统,通过将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了数据处理的速度并提高使用的灵活性,通过NFS共享,并配置为只允许数据库平台所在主机以读写方式访问。
/git:用于存放代码管理工具的配置及程序文件,此处以Git为例,通过NFS共享,并配置为只允许“代码管理工具”所在主机以读写方式访问。
/makevm:用于存放“编译平台”使用的基于KVM的虚拟机的运行环境,通过NFS共享,并配置为只允许“编译平台”所在主机可以访问。
/makevmtmp:用于存放“编译平台”使用的基于KVM的虚拟机的模板文件,通过NFS共享,并配置为只允许“编译平台”所在主机以读写方式访问。
/soft:用于存放经由“编译平台”编译为二进制或其它格式的程序代码。该目录通过NFS共享,并配置为只允许“编译平台”所在主机以读写方式访问;同时该目录通过CIFS共享,允许所有“开发/测试人员”以只读方式进行访问。
其工作过程如下:通过安装持续集成工具,例如:jenkins,或者缺陷管理工具,例如:mantis,获取待集成软件代码,其中,这些工具所要使用的数据库文件均存放在数据库平台所在主机;调用编译平台,例如,Ubuntu的编译平台,其中,编译平台可由1台或多台服务器组成,主要用于运行虚拟机,每个虚拟机都从/makevmtmp目录中复制到/makevm目录,具体的,虚拟机在构建以前,便已经配置好多种编译环境、所需的第3方库文件、HTML压缩工具、CSS压缩工具以及JavaScript压缩工具。编译平台中的对应的虚拟机通过git客户拉取待集成的软件代码,进行集成编译,将编译完成的内容存入/soft目录,开发/测试人员可以通过集成软件输出平台提供的CIFS共享得到可用的软件包;其次判断集成编译过程是否有错误,如果有错误,则反馈编译错误的提示信息,如果没有错误,则将编译后的待集成软件代码复制到集成软件输出平台;调用测试平台,例如:Ubuntu测试平台,其可由1台或多台服务器组成,用于运行测试的虚拟机,具体包括不同客户端平台、不同浏览器以及不同硬件配置,每个虚拟机都从/testvmtemp目录中复制到/testvm目录,虚拟机在构建前便配置好测试脚本以及测试工具,对集成编译后的待集成软件代码进行集成测试,测试平台测试完成后,通知编译平台进行编译后的待集成软件代码归档,具体是归档平台通过Git客户端拉取代码,同时通过CIFS共享将集成软件输出平台中编译后的待集成软件代码通过zip打包。最后将集成测试结果以及集成测试日志反馈给相关的开发/测试人员,以及时进行软件修复。
本发明还提供一种用于Linux平台的软件持续集成装置,如图3所示,包括:
获取单元101,用于调用持续集成工具获取待集成软件代码;
获取单元101通过持续集成工具,例如CruiseControL、hudson、jenkins以及Continuum。在软件开发项目中,通过持续集成,软件成员频繁集成他们的工作成果,通常每个人每天可能集成多次,而这个过程即是通过持续集成工具不断进行软件版本的发布/测试,持续集成工具获取待集成软件的代码。
编译单元102,用于调用编译平台对所述待集成软件代码进行集成编译;
在获取单元101获取待集成软件代码后,编译单元102调用编译平台对所述待集成软件代码进行集成编译,具体可以是:通过虚拟机中的预存的脚本使用Git获取待集成软件代码,进行编译。其中虚拟机具体是指通过软件模拟、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具体包括各种基于KVM的虚拟机,通过在虚拟机中预存的脚本获取持续集成工具所获得的软件代码,并进行编译,将软件代码编译为二进制或其它格式的程序代码。
第一判断单元103,用于判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
判断编译平台对软件代码的编译是否出错,如果出现错误,则给出编译错误的提示,若没有错误,则将编译完成的软件代码复制到集成软件输出平台,使得开发/测试人员可以通过软件输出平台所提供的CIFS共享得到可用的软件包。
测试单元104,用于调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
其中测试平台由一台或多台服务器组成,用于运行测试的各种虚拟机,具体包括不同客户端平台、不同浏览器以及不同的硬件配置,具体的,在构建虚拟机时便已准备好测试脚本以及测试工具,通过调用测试平台的自动化测试功能,对从软件输出平台复制已编译完成的软件代码进行测试。
输出单元105,用于输出集成测试结果及集成测试日志。
结果输出单元105输出测试平台对已编译完成软件代码的集成测试结果以及集成测试日志,以使得相关的开发/测试人员能够通过测试结果以及测试日志的反馈结果,及时进行改进,而不用等到开发周期的后期才寻找和修复缺陷。
本实施例所提供的持续集成方法通过整合持续集成工具、软件编译平台、软件测试平台,具体是通过获取单元101调用持续集成工具获取待集成软件代码;编译单元102调用编译平台对所述待集成的软件代码进行集成编译,将待集成的软件编译为二进制或其它格式的程序代码;其次通过第一判断单元103判断集成编译过程是否有错误,如果有错误,则反馈编译错误的提示信息,如果没有错误,则将编译后的待集成软件代码复制到集成软件输出平台;通过测试单元104调用测试平台对集成编译后的待集成软件代码进行集成测试,最后将集成测试结果以及集成测试日志反馈给相关的开发/测试人员,以及时进行软件修复。
本实施例通过将软件开发的各个环节都统一起来,以实现软件开发过程中的所有步骤,且软件开发人员无需了解各种服务器的部署方式、环境配置,且无需针对不同的软件搭建不同的编译、测试环境,便可以在软件开发的过程中频繁地集成工作成果,提高了软件开发、测试以及发布的效率。
进一步的,所述编译单元还包括:虚拟机启动单元,用于启动虚拟机,通过虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
具体的,在虚拟机启动之前,通过事先搭建多种编译环境,使得在对软件代码进行编译的过程中,能够多采用不同编译方式的代码进行编译,以实现根据待集成的软件代码自动构建编译环境,提高软件编译的效率;同时,获取所需的第3方库文件以及压缩工具,具体的,压缩工具包括但不限于HTML压缩工具、CSS压缩工具以及JavaScript压缩工具,通过压缩工具将已编译完成的软件代码打包进行保存。
进一步的,软件持续集成装置还包括:第二判断单元,用于判断所述待集成软件代码所采用的编译方式,所述编译平台选用与所述待集成软件代码相匹配的编译方式进行集成编译。例如,判断源软件代码的编译方式是C/C++编译代码、python编译代码或者html/css/js压缩代码。通过在编译之前对源软件代码的编译方式进行判断,能准确快速地搭建编译环境,提高编译的准确性以及效率。
进一步的,软件持续集成装置还包括归档单元,用于向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。具体的,所述归档单元包括归档指令传递单元,用于由所述测试平台通知所述编译平台对所述编译后的待集成的软件代码归档;所述编译平台发送归档指令给归档平台。
归档平台通过代码软件管理工具,例如Git客户端拉取代码,同时通过CIFS共享将软件输出平台中已编译的软件一同通过zip打包。其中,Git是运行于Linux平台的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,其采用的是分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流更加方便,且Git速度很快,对于大型的软件开发项目而言更加重要。Git本身并不需要有独立的服务器,但为了方便管理及代码版本的备份,本实施例中配置了一台Git服务器用于存放代码。
本发明实施例所提供的持续集成方法及装置通过将软件开发的各个环节都统一起来,以实现软件开发过程中的所有步骤,且软件开发人员无需了解各种服务器的部署方式、环境配置,且无需针对不同的软件搭建不同测试环境,便可以在软件开发的过程中频繁地集成工作成果,提高了软件开发、测试以及发布的效率。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (10)

1.一种用于Linux平台的软件持续集成方法,其特征在于,包括:
步骤一,调用持续集成工具获取待集成软件代码;
步骤二,调用编译平台对所述待集成软件代码进行集成编译;
步骤三,判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
步骤四,调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
步骤五,输出集成测试结果及集成测试日志。
2.如权利要求1所述的软件持续集成方法,其特征在于,所述步骤二中的编译平台对所述待集成软件代码进行集成编译具体是指:控制所述编译平台启动虚拟机,通过所述编译平台中的虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
3.如权利要求1所述的软件持续集成方法,其特征在于,在所述调用编译平台对所述待集成软件代码进行集成编译的步骤之前还包括,判断所述待集成软件代码所采用的编译方案信息,所述编译平台选用与所述待集成软件代码相匹配的编译方案信息进行集成编译。
4.如权利要求1所述的软件持续集成方法,其特征在于,在步骤五之后还包括,步骤六:向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。
5.如权利要求4所述的软件持续集成方法,其特征在于,所述步骤六中向归档平台发送归档指令具体是指:调用所述测试平台发送归档指令,通知所述编译平台对编译后的所述待集成的软件代码进行归档,并控制所述编译平台将所述归档指令发送给归档平台。
6.一种用于Linux平台的软件持续集成装置,其特征在于,包括:
获取单元,用于调用持续集成工具获取待集成软件代码;
编译单元,用于调用编译平台对所述待集成软件代码进行集成编译;
第一判断单元,用于判断集成编译是否出错,如有错误,则返回集成编译错误的提示信息;如没有错误,则将编译后的所述待集成软件代码复制到集成软件输出平台;
测试单元,用于调用测试平台从所述集成软件输出平台复制集成编译后的所述待集成软件代码,并控制所述测试平台对集成编译后的所述待集成软件代码进行集成测试;
输出单元,用于输出集成测试结果及集成测试日志。
7.如权利要求6所述的软件持续集成装置,其特征在于,所述编译单元还包括:虚拟机启动单元,用于启动虚拟机,通过虚拟机所构建的编译环境对所述待集成软件代码进行集成编译。
8.如权利要求6所述的软件持续集成装置,其特征在于,还包括:第二判断单元,用于判断所述待集成软件代码所采用的编译方式,所述编译平台选用与所述待集成软件代码相匹配的编译方式进行集成编译。
9.如权利要求6所述的软件持续集成装置,其特征在于,还包括归档单元,用于向归档平台发送归档指令,以使所述归档平台根据所述归档指令从所述软件输出平台复制编译后的所述待集成软件代码,并将所述编译后的所述待集成软件代码打包。
10.如权利要求9所述的软件持续集成装置,其特征在于,所述归档单元包括归档指令传递单元,用于由所述测试平台通知所述编译平台对所述编译后的待集成的软件代码归档;所述编译平台发送归档指令给归档平台。
CN201710186340.1A 2017-03-27 2017-03-27 一种用于Linux平台的软件持续集成方法及装置 Pending CN106970818A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710186340.1A CN106970818A (zh) 2017-03-27 2017-03-27 一种用于Linux平台的软件持续集成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710186340.1A CN106970818A (zh) 2017-03-27 2017-03-27 一种用于Linux平台的软件持续集成方法及装置

Publications (1)

Publication Number Publication Date
CN106970818A true CN106970818A (zh) 2017-07-21

Family

ID=59329881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710186340.1A Pending CN106970818A (zh) 2017-03-27 2017-03-27 一种用于Linux平台的软件持续集成方法及装置

Country Status (1)

Country Link
CN (1) CN106970818A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107621963A (zh) * 2017-09-21 2018-01-23 深圳市买买提乐购金融服务有限公司 一种软件部署方法、软件部署系统及电子设备
CN108073400A (zh) * 2017-12-07 2018-05-25 湖北三新文化传媒有限公司 软件自动化构建方法、服务器及存储介质
CN108491210A (zh) * 2018-03-27 2018-09-04 无锡华云数据技术服务有限公司 代码持续集成方法、装置、系统及服务器
CN109408106A (zh) * 2018-09-27 2019-03-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 敏捷软件开发持续集成方法及系统
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN110262970A (zh) * 2019-06-14 2019-09-20 浪潮软件集团有限公司 一种基于Hadoop大数据集群API自动化测试的方法和系统
CN115509544A (zh) * 2022-11-22 2022-12-23 成都佰维存储科技有限公司 Nvme持续集成方法、装置、可读存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708051A (zh) * 2012-07-12 2012-10-03 加弘科技咨询(上海)有限公司 程序持续集成的方法及系统
US20130139127A1 (en) * 2011-11-29 2013-05-30 Martin Vecera Systems and methods for providing continuous integration in a content repository
CN103412816A (zh) * 2013-08-12 2013-11-27 浪潮电子信息产业股份有限公司 一种基于linux的持续集成测试平台搭建方法
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN105630569A (zh) * 2015-12-17 2016-06-01 北京金山安全软件有限公司 一种软件源代码的处理方法、装置及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130139127A1 (en) * 2011-11-29 2013-05-30 Martin Vecera Systems and methods for providing continuous integration in a content repository
CN102708051A (zh) * 2012-07-12 2012-10-03 加弘科技咨询(上海)有限公司 程序持续集成的方法及系统
CN103412816A (zh) * 2013-08-12 2013-11-27 浪潮电子信息产业股份有限公司 一种基于linux的持续集成测试平台搭建方法
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN105630569A (zh) * 2015-12-17 2016-06-01 北京金山安全软件有限公司 一种软件源代码的处理方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩迪 等: "《Android实例详解——项目实训开发》", 31 August 2016, 北京邮电大学出版社 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107621963A (zh) * 2017-09-21 2018-01-23 深圳市买买提乐购金融服务有限公司 一种软件部署方法、软件部署系统及电子设备
CN107621963B (zh) * 2017-09-21 2020-11-27 深圳市融壹买信息科技有限公司 一种软件部署方法、软件部署系统及电子设备
CN108073400A (zh) * 2017-12-07 2018-05-25 湖北三新文化传媒有限公司 软件自动化构建方法、服务器及存储介质
CN108491210A (zh) * 2018-03-27 2018-09-04 无锡华云数据技术服务有限公司 代码持续集成方法、装置、系统及服务器
CN109408106A (zh) * 2018-09-27 2019-03-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 敏捷软件开发持续集成方法及系统
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN110262970A (zh) * 2019-06-14 2019-09-20 浪潮软件集团有限公司 一种基于Hadoop大数据集群API自动化测试的方法和系统
CN115509544A (zh) * 2022-11-22 2022-12-23 成都佰维存储科技有限公司 Nvme持续集成方法、装置、可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN106970818A (zh) 一种用于Linux平台的软件持续集成方法及装置
CN109857667B (zh) 接口自动化测试方法、测试装置、测试设备及存储介质
CN103298016B (zh) 移动终端的测试系统
CN109542791B (zh) 一种基于容器技术的程序大规模并发评测方法
Haraldsson et al. Fixing bugs in your sleep: How genetic improvement became an overnight success
CN106708740B (zh) 脚本测试方法及装置
CN102693183A (zh) 一种实现软件自动化测试的方法及系统
US8010578B2 (en) Method of refactoring a running database system
US20100306590A1 (en) Automated Testing Platform for Event Driven Systems
US7913229B2 (en) Computer-implemented system for generating automated tests from a web application
CN102035892A (zh) 操作系统版本自动发布和软件包自动更新的系统及方法
Paixao et al. CROP: Linking code reviews to source code changes
CN101515232A (zh) 一种软件持续集成系统及方法
CN103902456A (zh) 测试脚本处理装置、系统及方法
CN101866315B (zh) 软件开发工具的测试方法及系统
EP2572294A2 (en) System and method for sql performance assurance services
CN101799506B (zh) 基于脚本控制的芯片测试方法、装置及系统
CN110362490B (zh) 融合iOS与Android移动应用的自动化测试方法及系统
CN108763085A (zh) 测试案例的在线调试装置、方法及计算机可读存储介质
CN111324379A (zh) 基于通用soa服务的模型部署系统
McLennan et al. HUBzero and Pegasus: integrating scientific workflows into science gateways
CN109558318A (zh) 一种代码管理方法和代码仓库分布式系统
CN109426602A (zh) 一种应用开发过程中使用的检测方法及设备
CN108647147A (zh) 一种利用图谱分析执行自动化测试机器人及其使用方法
JP4568262B2 (ja) データ収集システム

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190919

Address after: 100089 Floor 1-4, No. 2 Building, No. 9 Courtyard, Dijin Road, Haidian District, Beijing

Applicant after: Beijing Tongyou Feiji Science and Technology Co., Ltd.

Address before: 518000 Feiyada Science and Technology Building, Yuehai Street, Nanshan District, Shenzhen City, Guangdong Province, 1402E

Applicant before: Shenzhen City Rui Bo deposit information technology Co. Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170721