软件构建方法、软件构建装置和软件构建系统与流程

文档序号:12270928阅读:196来源:国知局
软件构建方法、软件构建装置和软件构建系统与流程

本发明涉及软件技术领域,具体而言,涉及一种软件构建方法、一种软件构建装置和一种软件构建系统。



背景技术:

目前实现软件构建时,通常将版本控制工具直接安装于各个构建平台。因此,当使用同一套代码在不同的构建平台做构建工作时,往往由于某些构建平台(例如clearcase、git、starteam)不支持所用的版本控制工具而无法直接检出代码,而导致构建流程很繁琐。在这种情况下,需要将代码从支持版本控制工具的构建平台上检出,然后拷贝到不支持版本控制工具的目标构建平台上,然后再修改目标构建平台的构建参数等一系列工作后再进行构建。构建失败后需要在支持版本控制工具的构建平台上修改代码,然后重新进行上述操作后进行构建;如果构建成功,将构建的结果文件传回支持版本控制工具的构建平台上。

但是,现有技术中的构建方案至少存在以下几点不足:一、开发人员需要修改代码,并且在进行构建时,需要将代码在构建平台上反复传输,时间效率将受到影响;二、繁琐的构建步骤增大了出错的概率;三、构建过程中的构建参数需要在构建平台上配置,无法进行统一配置。

因此,如何使得不支持版本控制工具的构建平台可以更加方便快捷地使用代码进行构建工作,从而提高构建效率成为亟待解决的技术问题。



技术实现要素:

本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。

为此,本发明的一个目的在于提出了一种软件构建方法。

本发明的另一个目的在于提出了一种软件构建装置。

为实现上述至少一个目的,根据本发明的第一方面的实施例,提出了一种软件构建方法,包括:通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中。

在该技术方案中,通过将检出的代码存放在共享磁盘上,以实现代码的统一管理。并且统一为每个构建平台设置构建参数和环境配置参数,以使不支持版本控制工具的构建平台能够直接从共享磁盘上获取代码进行构建工作,在构建完成时,通过部署服务器将每个构建平台构建出的结果文件发送到共享磁盘上的与每个构建平台对应的目录中。通过以上技术方案,将版本控制工具与构建平台分离,避免了开发人员由于某些构建平台不支持版本控制工具而修改代码,以及避免了代码在构建平台上反复传输,从而提高了使用代码进行构建工作的效率。而且相比于现有技术而言,大大简化了使用代码进行构建工作的步骤,从而降低了构建时的出错概率。

该技术方案中的软件构建方法可用于构建主机,通过构建主机上的版本控制工具检出代码,以使版本控制工具与构建平台分离,实现代码的统一检出与管理,从而使得不支持版本控制工具的构建平台能够进行构建工作。

在上述任一技术方案中,优选地,所述共享磁盘挂载到所述多个构建平台的路径相同。

在该技术方案中,共享磁盘挂载到多个构建平台的路径均相同,从而避免配置各个构建平台与共享磁盘之间的路径,进而进一步地简化了构建的步骤,保证了构建效率。

在上述任一技术方案中,优选地,所述共享磁盘为网络文件系统(NFS,Network File System)的共享磁盘或者磁盘阵列。

在该技术方案中,利用NFS的共享磁盘或者磁盘阵列对代码进行存储,可以保证存储资源的充分利用。其中,磁盘阵列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

在上述任一技术方案中,优选地,所述检出代码的步骤包括:判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。

在该技术方案中,若多个构建平台待构建的结果文件之间存在冲突,则分别为每个构建平台检出一份代码,以使每个构建平台使用其对应的代码进行构建工作,从而避免构建平台构建出的结果文件之间存在冲突。

在上述任一技术方案中,优选地,在为所述多个构建平台检出多份所述代码的情况下,所述软件构建方法还包括:将每份所述代码存储到所述共享磁盘上与其对应的目录中,每份所述代码存储的目录的名称与所述代码对应的构建平台的名称一致。

在该技术方案中,通过将多份代码存储到不同的目录中,且目录的名称是其中的代码对应的构建平台的名称,以使存储不同的代码的目录之间能够区分。

根据本发明的第二方面的实施例,提出了一种软件构建装置,包括:代码检出单元,用于通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;设置单元,用于对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;调用单元,用于调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及发送单元,用于在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中。

在该技术方案中,通过将检出的代码存放在共享磁盘上,以实现代码的统一管理。并且统一为每个构建平台设置构建参数和环境配置参数,以使不支持版本控制工具的构建平台能够直接从共享磁盘上获取代码进行构建工作,在构建完成时,通过部署服务器将每个构建平台构建出的结果文件发送到共享磁盘上的与每个构建平台对应的目录中。通过以上技术方案,将版本控制工具与构建平台分离,避免了开发人员由于某些构建平台不支持版本控制工具而修改代码,以及避免了代码在构建平台上反复传输,从而提高了使用代码进行构建工作的效率。而且相比于现有技术而言,大大简化了使用代码进行构建工作的步骤,从而降低了构建时的出错概率。

该技术方案中的软件构建装置可用于构建主机,通过构建主机上的版本控制工具检出代码,以使版本控制工具与构建平台分离,实现代码的统一检出与管理,从而使得不支持版本控制工具的构建平台能够进行构建工作。

在上述任一技术方案中,优选地,所述共享磁盘挂载到所述多个构建平台的路径相同。

在该技术方案中,共享磁盘挂载到多个构建平台的路径均相同,从而避免配置各个构建平台与共享磁盘之间的路径,进而进一步地简化了构建的步骤,保证了构建效率。

在上述任一技术方案中,优选地,所述共享磁盘为网络文件系统(NFS,Network File System)的共享磁盘或者磁盘阵列。

在该技术方案中,利用NFS的共享磁盘或者磁盘阵列对代码进行存储,可以保证存储资源的充分利用。其中,磁盘阵列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

在上述任一技术方案中,优选地,所述代码检出单元包括:判断子单元,用于判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;检出子单元,用于若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;所述检出子单元还用于,若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。

在该技术方案中,若多个构建平台待构建的结果文件之间存在冲突,则分别为每个构建平台检出一份代码,以使每个构建平台使用其对应的代码进行构建工作,从而避免构建平台构建出的结果文件之间存在冲突。

根据本发明的第三方面的实施例,提出了一种软件构建系统,包括:多个构建平台;部署服务器;共享磁盘,以及构建主机,部署有版本控制工具和如上述技术方案中任一项所述的软件构建装置,因此,该软件构建系统具有和上述技术方案中任一项所述的软件构建装置相同的技术效果,在此不再赘述。

通过本发明的技术方案,使得不支持版本控制工具的构建平台可以更加方便快捷地使用代码进行构建工作,从而提高构建效率。

附图说明

图1示出了根据本发明的一个实施例的软件构建方法的流程示意图;

图2示出了根据本发明的另一个实施例的软件构建方法的流程示意图;

图3示出了根据本发明的实施例的各构建平台执行的构建步骤的流程示意图;

图4示出了根据本发明的一个实施例的软件构建装置的结构示意图;

图5示出了根据本发明的一个实施例的软件构建系统的结构示意图。

具体实施方式

为了可以更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的一个实施例的软件构建方法的流程示意图。

如图1所示,根据本发明的一个实施例的软件构建方法,包括:

步骤102,通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘。

步骤104,对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数。

步骤106,调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作。

步骤108,在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中。

在该技术方案中,通过将检出的代码存放在共享磁盘上,以实现代码的统一管理。并且统一为每个构建平台设置构建参数和环境配置参数,以使不支持版本控制工具的构建平台能够直接从共享磁盘上获取代码进行构建工作,在构建完成时,通过部署服务器将每个构建平台构建出的结果文件发送到共享磁盘上的与每个构建平台对应的目录中。通过以上技术方案,将版本控制工具与构建平台分离,避免了开发人员由于某些构建平台不支持版本控制工具而修改代码,以及避免了代码在构建平台上反复传输,从而提高了使用代码进行构建工作的效率。而且相比于现有技术而言,大大简化了使用代码进行构建工作的步骤,从而降低了构建时的出错概率。

该技术方案中的软件构建方法可用于构建主机,通过构建主机上的版本控制工具检出代码,以使版本控制工具与构建平台分离,实现代码的统一检出与管理,从而使得不支持版本控制工具的构建平台能够进行构建工作。

在上述任一技术方案中,优选地,所述共享磁盘挂载到所述多个构建平台的路径相同。

在该技术方案中,共享磁盘挂载到多个构建平台的路径均相同,从而避免配置各个构建平台与共享磁盘之间的路径,进而进一步地简化了构建的步骤,保证了构建效率。

在上述任一技术方案中,优选地,所述检出代码的步骤包括:判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。

在该技术方案中,若多个构建平台待构建的结果文件之间存在冲突,则分别为每个构建平台检出一份代码,以使每个构建平台使用其对应的代码进行构建工作,从而避免构建平台构建出的结果文件之间存在冲突。

在上述任一技术方案中,优选地,在为所述多个构建平台检出多份所述代码的情况下,所述软件构建方法还包括:将每份所述代码存储到所述共享磁盘上与其对应的目录中,每份所述代码存储的目录的名称与所述代码对应的构建平台的名称一致。

在该技术方案中,通过将多份代码分别存储到不同的目录中,且每份代码存储的目录的名称是该代码对应的构建平台的名称,以使存储不同的代码的目录之间能够区分。

在上述任一技术方案中,优选地,所述共享磁盘为网络文件系统(NFS,Network File System)的共享磁盘或者磁盘阵列。

在该技术方案中,利用NFS的共享磁盘或者磁盘阵列对代码进行存储,可以保证存储资源的充分利用。其中,磁盘阵列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

图2示出了根据本发明的另一个实施例的软件构建方法的流程示意图。

如图2所示,根据本发明的另一个实施例的软件构建方法,包括:

步骤202,构建主机通过版本控制工具进行代码检出,并且代码检出的物理位置为NFS(网络文件系统)的共享磁盘。

步骤204,构建主机解析多个构建平台。

步骤206,构建主机生成每个构建平台的构建参数,并设置每个构建平台的构建参数。

步骤208,构建主机生成每个构建平台的环境配置参数,并设置每个构建平台的环境配置参数。

步骤210,构建主机分别调用多个构建平台,以使多个构建平台分别进行构建工作。具体地,构建平台1使用NFS(网络文件系统)的共享磁盘上存储的代码进行构建工作,构建平台2使用NFS(网络文件系统)的共享磁盘上存储的代码进行构建工作,构建平台3使用NFS(网络文件系统)的共享磁盘上存储的代码进行构建工作,构建平台4使用NFS(网络文件系统)的共享磁盘上存储的代码进行构建工作。其中,构建平台1、构建平台2、构建平台3和构建平台4是并行执行构建工作。

步骤212,在确定多个构建平台中的任一构建平台构建完成时,将任一构建平台构建完成的信号发送给部署服务器,以供部署服务器根据该信号将任一构建平台构建出的结果文件发送到共享磁盘上的与任一构建平台对应的目录中。

步骤214,打包部署结果文件。

图3示出了根据本发明的实施例的各构建平台执行的构建步骤的流程示意图。

如图3所示,根据本发明的实施例的各构建平台执行的构建步骤包括:

步骤302,构建平台解析构建参数和环境配置参数。

步骤304,生成构建指令。

步骤306,根据构建指令,使用NFS(网络文件系统)的共享磁盘上存储的代码进行构建工作。

步骤308,判断是否构建成功,在构建成功时,执行步骤310,在构建失败时,执行步骤312。

步骤310,发送构建的结果文件,例如,将构建的结果文件发送给相关的测试人员。

步骤312,异常处理,例如,若构建平台所在的主机掉线,则检查主机的情况,若构建错误(与代码无关),则检查构建脚本,修复构建计划,若构建错误(与代码有关),则反馈给开发人员。

在一个实施例中,各构建平台执行的构建步骤可以通过shell或perl脚本实现。

图4示出了根据本发明的一个实施例的软件构建装置的结构示意图。

如图4所示,根据本发明的一个实施例的软件构建装置400,包括:代码检出单元402、设置单元404、调用单元406和发送单元408。

代码检出单元402,用于通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;设置单元404,用于对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;调用单元406,用于调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及发送单元408,用于在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中。

在该技术方案中,通过将检出的代码存放在共享磁盘上,以实现代码的统一管理。并且统一为每个构建平台设置构建参数和环境配置参数,以使不支持版本控制工具的构建平台能够直接从共享磁盘上获取代码进行构建工作,在构建完成时,通过部署服务器将将每个构建平台构建出的结果文件发送到共享磁盘上的与每个构建平台对应的目录中。通过以上技术方案,将版本控制工具与构建平台分离,避免了开发人员由于某些构建平台不支持版本控制工具而修改代码,以及避免了代码在构建平台上反复传输,从而提高了使用代码进行构建工作的效率。而且相比于现有技术而言,大大简化了使用代码进行构建工作的步骤,从而降低了构建时的出错概率。

该技术方案中的软件构建装置可用于构建主机,通过构建主机上的版本控制工具检出代码,以使版本控制工具与构建平台分离,从而使得不支持版本控制工具的构建平台能够进行构建工作。

在上述任一技术方案中,优选地,所述共享磁盘挂载到所述多个构建平台的路径相同。

在该技术方案中,共享磁盘挂载到多个构建平台的路径均相同,从而避免配置各个构建平台与共享磁盘之间的路径,进而进一步地简化了构建的步骤,保证了构建效率。

在上述任一技术方案中,优选地,所述代码检出单元402包括:判断子单元4022,用于判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;检出子单元4024,用于若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;所述检出子单元4024还用于,若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。

在该技术方案中,若多个构建平台待构建的结果文件之间存在冲突,则分别为每个构建平台检出一份代码,以使每个构建平台使用其对应的代码进行构建工作,从而避免构建平台构建出的结果文件之间存在冲突。

另外,在检出多份代码的情况下,将多份代码存放在共享磁盘上的不同目录中,目录名称以构建平台的名称进行区分。

在上述任一技术方案中,优选地,所述共享磁盘为网络文件系统(NFS,Network File System)的共享磁盘或者磁盘阵列。

在该技术方案中,利用NFS的共享磁盘或者磁盘阵列对代码进行存储,可以保证存储资源的充分利用。其中,磁盘阵列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

图5示出了根据本发明的一个实施例的软件构建系统的结构示意图。

如图5所示,根据本发明的一个实施例的软件构建系统500,包括:构建主机502(在构建主机502上部署有图4实施例中的软件构建装置400和版本控制工具)、NFS(网络文件系统)格式的共享磁盘504、多个构建平台(例如构建平台A506、构建平台B508和构建平台C510)和部署服务器512。构建主机502上部署的软件构建装置用于执行如下步骤:通过版本控制工具检出代码,且代码检出的物理位置为NFS格式的共享磁盘504;对多个构建平台(例如构建平台A506、构建平台B508和构建平台C510)进行解析,来设置构建平台A506、构建平台B508和构建平台C510的构建参数和环境配置参数;调用构建平台A506、构建平台B508和构建平台C510,以使每个构建平台使用NFS格式的共享磁盘504上的代码进行构建工作(例如通过ssh remote_hostname build来执行构建工作);以及在确定构建平台A506、构建平台B508和构建平台C510中的任一构建平台构建完成时,将该任一构建平台构建完成的信号发送给部署服务器,以供部署服务器512根据该信号将上述中的任一构建平台构建出的结果文件发送到NFS格式的共享磁盘504上的与上述中的任一构建平台对应的目录中。

在上述任一技术方案中,优选地,NFS格式的共享磁盘504挂载到多个构建平台的路径相同。

在上述任一技术方案中,优选地,构建主机502上部署的软件构建装置还用于,在检出代码之前,分别配置多个构建平台中的每个构建平台的hostname,并将每个构建平台的hostname和IP加入到/etc/hosts中;以及建立与每个构建平台和部署服务器512的连接,以使软件构建装置根据/etc/hosts执行远程的构建调度工作。

在以上技术方案中,当构建平台不支持版本控制工具时,构建主机502将检出的代码存储在NFS格式的共享磁盘504上,并自动产生针对不同的构建平台的构建参数和环境配置参数,由于所有的配置、调度、部署工作都在构建主机502上执行,并不是在各个构建平台上执行,各个构建平台只需执行构建即可。如再深入一些,可以借助开源的持续集成工具(如jenkins)来搭建全自动化的构建平台。

以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,使得不支持版本控制工具的构建平台可以更加方便快捷地使用代码进行构建工作,从而提高构建效率。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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