CN106445541B - 软件构建方法、软件构建装置和软件构建系统 - Google Patents

软件构建方法、软件构建装置和软件构建系统 Download PDF

Info

Publication number
CN106445541B
CN106445541B CN201610877474.3A CN201610877474A CN106445541B CN 106445541 B CN106445541 B CN 106445541B CN 201610877474 A CN201610877474 A CN 201610877474A CN 106445541 B CN106445541 B CN 106445541B
Authority
CN
China
Prior art keywords
construction
platforms
platform
code
shared disk
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.)
Active
Application number
CN201610877474.3A
Other languages
English (en)
Other versions
CN106445541A (zh
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 VSETTAN DATA TECHNOLOGY CO.,LTD.
Original Assignee
Beijing Huasheng Xintai Data Technology Co Ltd
Huasheng Xintai Information Industry Development 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 Beijing Huasheng Xintai Data Technology Co Ltd, Huasheng Xintai Information Industry Development Co Ltd filed Critical Beijing Huasheng Xintai Data Technology Co Ltd
Priority to CN201610877474.3A priority Critical patent/CN106445541B/zh
Publication of CN106445541A publication Critical patent/CN106445541A/zh
Application granted granted Critical
Publication of CN106445541B publication Critical patent/CN106445541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出了一种软件构建方法、软件构建装置和软件构建系统,其中,该软件构建方法包括:通过版本控制工具检出代码,且代码检出的物理位置为共享磁盘;对多个构建平台进行解析,来设置多个构建平台中的每个构建平台的构建参数和环境配置参数;调用每个构建平台,以使每个构建平台使用共享磁盘上的代码进行构建工作;以及在确定多个构建平台中的任一构建平台构建完成时,将任一构建平台构建完成的信号发送给部署服务器,以供部署服务器根据信号将任一构建平台构建出的结果文件发送到共享磁盘上的与任一构建平台对应的目录中。通过本发明的技术方案,使得不支持版本控制工具的构建平台更加方便快捷地使用代码进行构建工作,从而提高构建效率。

Description

软件构建方法、软件构建装置和软件构建系统
技术领域
本发明涉及软件技术领域,具体而言,涉及一种软件构建方法、一种软件构建装置和一种软件构建系统。
背景技术
目前实现软件构建时,通常将版本控制工具直接安装于各个构建平台。因此,当使用同一套代码在不同的构建平台做构建工作时,往往由于某些构建平台(例如clearcase、git、starteam)不支持所用的版本控制工具而无法直接检出代码,而导致构建流程很繁琐。在这种情况下,需要将代码从支持版本控制工具的构建平台上检出,然后拷贝到不支持版本控制工具的目标构建平台上,然后再修改目标构建平台的构建参数等一系列工作后再进行构建。构建失败后需要在支持版本控制工具的构建平台上修改代码,然后重新进行上述操作后进行构建;如果构建成功,将构建的结果文件传回支持版本控制工具的构建平台上。
但是,现有技术中的构建方案至少存在以下几点不足:一、开发人员需要修改代码,并且在进行构建时,需要将代码在构建平台上反复传输,时间效率将受到影响;二、繁琐的构建步骤增大了出错的概率;三、构建过程中的构建参数需要在构建平台上配置,无法进行统一配置。
因此,如何使得不支持版本控制工具的构建平台可以更加方便快捷地使用代码进行构建工作,从而提高构建效率成为亟待解决的技术问题。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的一个目的在于提出了一种软件构建方法。
本发明的另一个目的在于提出了一种软件构建装置。
为实现上述至少一个目的,根据本发明的第一方面的实施例,提出了一种软件构建方法,包括:通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中。
在该技术方案中,通过将检出的代码存放在共享磁盘上,以实现代码的统一管理。并且统一为每个构建平台设置构建参数和环境配置参数,以使不支持版本控制工具的构建平台能够直接从共享磁盘上获取代码进行构建工作,在构建完成时,通过部署服务器将每个构建平台构建出的结果文件发送到共享磁盘上的与每个构建平台对应的目录中。通过以上技术方案,将版本控制工具与构建平台分离,避免了开发人员由于某些构建平台不支持版本控制工具而修改代码,以及避免了代码在构建平台上反复传输,从而提高了使用代码进行构建工作的效率。而且相比于现有技术而言,大大简化了使用代码进行构建工作的步骤,从而降低了构建时的出错概率。
该技术方案中的软件构建方法可用于构建主机,通过构建主机上的版本控制工具检出代码,以使版本控制工具与构建平台分离,实现代码的统一检出与管理,从而使得不支持版本控制工具的构建平台能够进行构建工作。
在上述任一技术方案中,优选地,所述共享磁盘挂载到所述多个构建平台的路径相同。
在该技术方案中,共享磁盘挂载到多个构建平台的路径均相同,从而避免配置各个构建平台与共享磁盘之间的路径,进而进一步地简化了构建的步骤,保证了构建效率。
在上述任一技术方案中,优选地,所述共享磁盘为网络文件系统(NFS,NetworkFile 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,NetworkFile 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,NetworkFile 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,NetworkFile 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)来搭建全自动化的构建平台。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,使得不支持版本控制工具的构建平台可以更加方便快捷地使用代码进行构建工作,从而提高构建效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种软件构建方法,其特征在于,包括:
通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;
对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;
调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及
在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中;
所述检出代码的步骤包括:
判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;
若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;
若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。
2.根据权利要求1所述的软件构建方法,其特征在于,
所述共享磁盘挂载到所述多个构建平台的路径相同。
3.根据权利要求1所述的软件构建方法,其特征在于,
所述共享磁盘为网络文件系统的共享磁盘或者磁盘阵列。
4.根据权利要求1至3中任一项所述的软件构建方法,其特征在于,
将每份所述代码存储到所述共享磁盘上与其对应的目录中,每份所述代码存储的目录的名称与所述代码对应的构建平台的名称一致。
5.一种软件构建装置,其特征在于,包括:
代码检出单元,用于通过版本控制工具检出代码,且所述代码检出的物理位置为共享磁盘;
设置单元,用于对多个构建平台进行解析,来设置所述多个构建平台中的每个构建平台的构建参数和环境配置参数;
调用单元,用于调用所述每个构建平台,以使所述每个构建平台使用所述共享磁盘上的所述代码进行构建工作;以及
发送单元,用于在确定所述多个构建平台中的任一构建平台构建完成时,将所述任一构建平台构建完成的信号发送给部署服务器,以供所述部署服务器根据所述信号将所述任一构建平台构建出的结果文件发送到所述共享磁盘上的与所述任一构建平台对应的目录中;
所述代码检出单元包括:
判断子单元,用于判断所述多个构建平台中的每两个构建平台待构建的结果文件之间是否存在冲突;
检出子单元,用于若所述多个构建平台中的其中两个构建平台待构建的结果文件之间存在冲突,则为所述多个构建平台检出多份所述代码,其中,所述多个构建平台与多个所述代码一一对应;
所述检出子单元还用于,若所述每两个构建平台待构建的结果文件之间均不存在冲突,则为所述多个构建平台检出一份所述代码。
6.根据权利要求5所述的软件构建装置,其特征在于,
所述共享磁盘挂载到所述多个构建平台的路径相同。
7.根据权利要求5所述的软件构建装置,其特征在于,
所述共享磁盘为网络文件系统的共享磁盘或者磁盘阵列。
8.一种软件构建系统,其特征在于,包括:
多个构建平台;
部署服务器;
共享磁盘;以及
构建主机,部署有版本控制工具和如权利要求5至7中任一项所述的软件构建装置。
CN201610877474.3A 2016-09-30 2016-09-30 软件构建方法、软件构建装置和软件构建系统 Active CN106445541B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610877474.3A CN106445541B (zh) 2016-09-30 2016-09-30 软件构建方法、软件构建装置和软件构建系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610877474.3A CN106445541B (zh) 2016-09-30 2016-09-30 软件构建方法、软件构建装置和软件构建系统

Publications (2)

Publication Number Publication Date
CN106445541A CN106445541A (zh) 2017-02-22
CN106445541B true CN106445541B (zh) 2020-02-28

Family

ID=58172245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610877474.3A Active CN106445541B (zh) 2016-09-30 2016-09-30 软件构建方法、软件构建装置和软件构建系统

Country Status (1)

Country Link
CN (1) CN106445541B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193582B (zh) * 2017-04-06 2021-06-18 百度在线网络技术(北京)有限公司 发布方法及系统
CN107707646A (zh) * 2017-09-27 2018-02-16 深圳市九洲电器有限公司 基于机顶盒项目的svn服务器管理方法及系统
CN109032784A (zh) * 2018-08-07 2018-12-18 郑州云海信息技术有限公司 一种多任务并行构建方法及装置
CN111338634B (zh) * 2020-02-14 2023-05-23 卓米私人有限公司 并行构建的方法、装置及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100472473C (zh) * 2007-06-22 2009-03-25 中兴通讯股份有限公司 一种实现测试脚本管理和分发的方法及装置
CN101639775B (zh) * 2009-09-01 2012-05-02 用友软件股份有限公司 一种组件构建方法和装置
CN103729195B (zh) * 2014-01-15 2017-04-05 北京奇虎科技有限公司 一种软件版本的控制方法及系统

Also Published As

Publication number Publication date
CN106445541A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106445541B (zh) 软件构建方法、软件构建装置和软件构建系统
US20150100829A1 (en) Method and system for selecting and executing test scripts
US20150100830A1 (en) Method and system for selecting and executing test scripts
US20150100831A1 (en) Method and system for selecting and executing test scripts
JP6922532B2 (ja) テスト実行制御プログラム、テスト実行制御方法、およびテスト実行制御装置
CN106980565B (zh) 升级过程监控方法及装置
CN106817241A (zh) 一种升级管理方法、升级方法及装置
CN109614109B (zh) 应用部署方法、装置和系统
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN109460268B (zh) 应用参数配置方法、装置和系统
CN110618853B (zh) 一种僵尸容器的检测方法、装置及设备
US9935867B2 (en) Diagnostic service for devices that employ a device agent
CN112749043B (zh) 一种数据库灾备的方法、系统、设备及介质
CN110413437B (zh) 网络命名空间异常处理方法、装置、设备及可读存储介质
CN104111862A (zh) 云计算平台中获取虚拟机ip地址方法与系统
CN109460331B (zh) 一种克隆特性测试方法、装置、设备及存储介质
CN109614337B (zh) 一种基于linux系统的性能测试系统及测试工具
CN114154526B (zh) 一种二维码处理方法、系统、存储介质及电子设备
CN111209197B (zh) 应用程序持续集成测试方法、系统、设备和存储介质
CN115168236A (zh) 自动化测试方法及电子设备、存储介质
CN112328267A (zh) 一种多台服务器安装方法、装置、终端及存储介质
CN109298983B (zh) 一种快照特性测试方法、装置、设备及存储介质
JP2018005768A (ja) ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置
CN111651189A (zh) 持续集成系统的产品交付方法及装置、电子设备
CN117215635A (zh) 任务处理方法、装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220418

Address after: Room 403, 4th floor, building 23, East District, yard 10, Xibeiwang East Road, Haidian District, Beijing 100089

Patentee after: BEIJING VSETTAN DATA TECHNOLOGY CO.,LTD.

Address before: 100192 West Zone, 10 / F, block a, No. 8 Xueqing Road (Science and technology wealth center), Haidian District, Beijing

Patentee before: VSETTAN INFORMATION INDUSTRY DEVELOPMENT CO.,LTD.

Patentee before: Beijing Huasheng Xintai Data Technology Co., Ltd

TR01 Transfer of patent right