CN111338634A - 并行构建的方法、装置及设备 - Google Patents

并行构建的方法、装置及设备 Download PDF

Info

Publication number
CN111338634A
CN111338634A CN202010093659.1A CN202010093659A CN111338634A CN 111338634 A CN111338634 A CN 111338634A CN 202010093659 A CN202010093659 A CN 202010093659A CN 111338634 A CN111338634 A CN 111338634A
Authority
CN
China
Prior art keywords
construction
task
platform
parallel
tasks
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.)
Granted
Application number
CN202010093659.1A
Other languages
English (en)
Other versions
CN111338634B (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.)
Zhuomi Private Ltd
Original Assignee
Hong Kong LiveMe Corp 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 Hong Kong LiveMe Corp ltd filed Critical Hong Kong LiveMe Corp ltd
Priority to CN202010093659.1A priority Critical patent/CN111338634B/zh
Publication of CN111338634A publication Critical patent/CN111338634A/zh
Application granted granted Critical
Publication of CN111338634B publication Critical patent/CN111338634B/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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供的一种并行构建的方法、装置及设备。其中,一种并行构建的方法,应用于并行构建平台,当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。本方案可以降低并行构建的成本。

Description

并行构建的方法、装置及设备
技术领域
本发明涉及持续集成技术领域,特别是涉及一种并行构建的方法、装置及设备。
背景技术
持续集成是对用于实现应用不同功能的多份不同的代码进行集成的过程。在具体应用中,持续集成可以通过对多份不同代码进行自动化的构建,验证集成后的代码是否异常,以尽早发现集成异常对应的代码错误并修正。其中,自动化的构建具体可以包括对代码进行编译,发布以及测试。在自动化的构建中,为了提高构建效率,可以对多份不同的代码进行并行构建。
相关技术中,并行构建具体可以包括:利用多台服务器同时分别对不同代码进行构建,从而实现并行构建。但是,服务器往往需要一定的购置成本和维护成本,因此,多台服务器容易造成并行构建的成本上升。
发明内容
本发明实施例的目的在于提供一种并行构建的方法、装置及设备,以实现降低并行构建的成本的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种并行构建的方法,应用于并行构建平台,该方法包括:
当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;
针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
可选的,所述从指定平台分别获取每个构建任务的配置文件,包括:
向所述指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得所述指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给所述并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
针对每个所述第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
可选的,所述基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行相应的构建任务,得到该构建任务的构建结果,包括:
针对所述每个构建任务,分别向所述指定平台发送关于执行指定任务的第二通知,以使得所述指定平台执行所述指定任务,并将所述指定任务的执行结果返回给所述并行构建平台;
分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果;
其中,所述指定任务为预先在所述指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发所述构建模块执行该构建任务,得到执行结果。
可选的,所述指定任务还用于:
在所述将所述指定任务的执行结果返回给所述并行构建平台之后,清除该执行结果对应的构建模块、所述指定平台中的该执行结果以及该执行结果对应的配置文件。
可选的,在所述针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,所述指定任务还用于:
监测所述预存的构建模块是否为最新版本;
如果否,利用预设更新模型对所述预存的构建模块进行更新。
第二方面,本发明实施例提供了一种并行构建的装置,应用于并行构建平台,该装置包括:
配置文件获取模块,用于当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;
复制模块,用于针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
构建模块,用于基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
可选的,所述配置文件获取模块,包括:发送子模块和接收子模块;
所述发送子模块,用于向所述指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得所述指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给所述并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
所述接收子模块,用于针对每个所述第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
可选的,所述构建模块,具体用于:
针对所述每个构建任务,分别向所述指定平台发送关于执行指定任务的第二通知,以使得所述指定平台执行所述指定任务,并将所述指定任务的执行结果返回给所述并行构建平台;
分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果;
其中,所述指定任务为预先在所述指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发所述构建模块执行该构建任务,得到执行结果。
可选的,所述指定任务还用于:
在所述将所述指定任务的执行结果返回给所述并行构建平台之后,清除该执行结果对应的构建模块、所述指定平台中的该执行结果以及该执行结果对应的配置文件。
可选的,所述指定任务还用于:
在所述复制模块针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,监测所述预存的构建模块是否为最新版本;
如果否,利用预设更新模型对所述预存的构建模块进行更新。
第三方面,本发明实施例提供了一种电子设备,该设备包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的并行构建的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的并行构建的方法的步骤。
本发明实施例提供的方案中,指定平台为用于进行持续集成的平台,可以提供关于执行构建任务的构建环境的配置文件。因此,并行构建平台在检测到针对多份代码的多个构建任务并行创建时,可以从指定平台中分别获取每个构建任务的配置文件,以用于执行构建任务。并且,由于预存的构建模块为用于对任一份代码进行自动化的构建的模块,因此,可用构建模块可以用于实现相应的构建任务。在此基础上,并行构建平台可以针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块,保证每个构建任务对应一个可用构建模块,进而基于每个构建任务的配置文件,分别利用每个构建任务对应的构建模块,执行该构建任务,从而实现并行创建的多个构建任务的并行构建。与利用多个服务器的并行构建相比,无需大量服务器即可实现并行构建,节省大量服务器造成的购置成本和维护成本,从而降低并行构建的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例提供的并行构建的方法的流程示意图;
图2为本发明另一实施例提供的并行构建的方法的流程示意图;
图3为本发明一实施例提供的并行构建的装置的结构示意图;
图4为本发明另一实施例提供的并行构建的装置的结构示意图;
图5为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明一实施例的并行构建的方法进行介绍。
本发明实施例提供的并行构建的方法,可以应用于并行构建平台。在具体应用中,并行构建平台可以是多种的。示例性的,并行构建平台可以是安装在电子设备上,用于实现并行构建的应用。或者,示例性的,并行构建平台可以包括台式计算机、便携式计算机、互联网电视、智能移动终端、服务器以及可穿戴式智能终端等等,在此不作限定,任何可以实现本发明实施例的电子设备,均可作为本发明的并行构建平台,属于本发明实施例的保护范围。
如图1所示,本发明一实施例的并行构建的方法的流程,该方法可以包括:
S101,当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件。其中,指定平台为用于进行持续集成的平台;配置文件用于设置相应的构建任务的构建环境。
其中,并行构建平台检测针对不同代码的多个构建任务并行创建的方式具体可以是多种的。示例性的,并行构建平台可以在同时接收到多个关于创建针对不同代码的构建任务的指令时,确定检测到针对不同代码的多个构建任务并行创建。或者,示例性,并行构建平台可以在同时检测到存在针对不同代码的多个构建任务的创建信息时,确定检测到针对不同代码的多个构建任务并行创建。其中,构建任务的创建信息为能够表明构建任务创建的信息,例如,构建任务的注册表等信息。
在具体应用中,用于进行持续集成的指定平台可以为Jenkins平台。Jenkins平台可以通过大量的插件,实现一系列的持续化集成的工作,例如自动化的构建工作。由于指定平台可以用于进行持续集成,并且,持续集成的过程包括自动化的构建,因此,并行构建平台可以从指定平台分别获取每个构建任务的配置文件。以此为基础,并行构建平台可以在后续步骤S103中利用配置文件实现并行构建。为了便于理解和合理布局,后续以可选实施例的形式,对从指定平台分别获取每个构建任务的配置文件的具体方式,进行说明。
另外,指定平台与并行构建平台之间的关系可以是多种的。示例性的,指定平台可以作为并行构建平台的一部分,封装在并行构建平台中;或者,指定平台可以独立于并行构建平台。
S102,针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块。其中,预存的构建模块为用于对任一份代码进行自动化的构建的模块。
为了实现并行构建,可以在并行构建平台中预存构建模块,以便针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块。并且,该预存的构建模块为用于对任一份代码进行自动化的构建的模块。由于每个构建任务对应一个可用构建模块,因此,可以在后续步骤S103中分别利用各构建模块执行相应的构建任务,得到相应构建任务的构建结果。此时,每个可用构建模块相互独立,可以用于执行相应的构建任务,无需等待其他构建任务执行结束在执行,因此,可以实现多个并行创建的构建任务的并行构建。
S103,基于每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
其中,每个构建任务的配置文件可以为该构建任务的执行提供构建环境,每个构建任务的可用构建模块可以实现该构建任务所针对的代码的自动化的构建。因此,并行构建平台可以基于每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
另外,为了便于理解和合理布局,对并行构建平台基于每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果具体方式,后续在本发明图2实施例中进行说明。
本发明实施例提供的方案中,指定平台为用于进行持续集成的平台,可以提供关于执行构建任务的构建环境的配置文件。因此,并行构建平台在检测到针对多份代码的多个构建任务并行创建时,可以从指定平台中分别获取每个构建任务的配置文件,以用于执行构建任务。并且,由于预存的构建模块为用于对任一份代码进行自动化的构建的模块,因此,可用构建模块可以用于实现相应的构建任务。在此基础上,并行构建平台可以针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块,保证每个构建任务对应一个可用构建模块,进而基于每个构建任务的配置文件,分别利用每个构建任务对应的构建模块,执行该构建任务,从而实现并行创建的多个构建任务的并行构建。与利用多个服务器的并行构建相比,无需大量服务器即可实现并行构建,节省大量服务器造成的购置成本和维护成本,从而降低并行构建的成本。
在一种可选的实施方式中,上述从指定平台分别获取每个构建任务的配置文件,具体可以包括如下步骤:
向指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
针对每个第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
在具体应用中,由于指定平台可以用于进行持续集成,并且,持续集成的过程包括自动化的构建,因此指定平台中存在用于自动化的构建的任务,并且该任务创建完成时的配置文件,可以作为并行构建平台中构建任务对应的配置文件。对此,为了快速获取配置文件,减少并行构建平台对关于用于构建任务的配置文件的开发成本,可以将指定平台中用于自动化的构建的任务作为副任务。以此为基础,并行构建平台可以向指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给并行构建平台,从而构建平台可以针对每个第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
示例性的,并行构建平台可以分别向指定平台发送关于创建构建任务A对应的副任务A1的第一通知N11,以及关于创建构建任务B对应的副任务B1的第一通知N12。指定平台在接收到第一通知N11时,可以创建与第一通知N11对应的副任务A1,并将副任务A1创建完成时产生的配置文件cf1,返回给并行构建平台。并行构建平台接收与第一通知N11对应的配置文件cf1,作为与第一通知N11对应的创建任务A的配置文件。类似的,可以针对构建任务B,并行发送第一通知N12,进而接收副任务B1创建完成时产生的配置文件cf2,作为构建任务B的配置文件。
如图2所示,本发明另一实施例的并行构建的方法的流程,该方法可以包括:
S201,当检测到针对多份代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件。其中,指定平台为用于进行持续集成的平台;配置文件用于设置相应的构建任务的构建环境。
S202,针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块。其中,预存的构建模块为用于对任一份代码进行自动化的构建的模块。
上述S201至S202为与本发明图1实施例的步骤S101至S102为相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
S203,针对每个构建任务,分别向指定平台发送关于执行指定任务的第二通知,以使得指定平台执行指定任务,并将指定任务的执行结果返回给并行构建平台。其中,指定任务为预先在指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发构建模块执行该构建任务,得到执行结果。
S204,分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果。
在具体应用中,由于配置文件为从指定平台中获取的,因此,为了提高按照配置文件配置的构建环境与构建模块的相符程度,以提高构建模块执行构建任务的流畅性和成功率,并行构建平台可以分别向指定平台发送关于执行指定任务的第二通知,以使得指定平台执行指定任务,并将指定任务的执行结果返回给并行构建平台;进而并行构建平台可以分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果。
其中,预先在指定平台中构建的指定任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发构建模块执行该构建任务,得到执行结果。示例性的,当指定平台为Jenkins平台时,指定任务可以为预先在Jenkins平台创建的pipline任务。其中,pipline任务为Jenkins平台中能够实现工作流的任务,因此,可以将预先在Jenkins平台创建的pipline任务作为指定任务,用于实现工作流:针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发构建模块执行该构建任务,得到执行结果。
可选的,上述指定任务还可以用于:
在上述将指定任务的执行结果返回给并行构建平台之后,清除该执行结果对应的构建模块、指定平台中的该执行结果以及该执行结果对应的配置文件。
在本可选实施例中,指定任务可以在构建结束后,即:将指定任务的执行结果返回给并行构建平台之后,通过清除该执行结果对应的构建模块、指定平台中的该执行结果以及该执行结果对应的配置文件,实现对构建现场的清理。由此,可以通过对构建现场的清理,减少已返回给并行构建平台的执行结果对指定平台的资源占用,以及复制得到的可用配置文件和相应的构建任务对并行构建平台的资源占用。
可选的,在上述针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,上述指定任务还可以用于:
监测预存的构建模块是否为最新版本;
如果否,利用预设更新模型对预存的构建模块进行更新。
在具体应用中,预设更新模块可以为git pull函数。并且,在针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,指定任务监测预存的构建模块是否为最新版本,能够保证每次进行并行构建时,使用的可用构建模块始终为最新版本,从而保证构建任务执行的最优化。
其中,指定任务监测预存的构建模块是否为最新版本的方式具体可以是多种的。示例性的,指定任务可以获取预存的构建模块的版本信息,判断所获取的版本信息与预存的版本信息更新记录中,最新的版本信息是否相同,如果相同,确定预存的构建模块为最新版本,否则,确定预存的构建模块非最新版本。或者,示例性的,指定任务可以判断最新接收的构建模块与预存的构建模块是否为相同的版本;如果不同,确定预存的构建模块非最新版本。任何监测预存的构建模块是否为最新版本的方法均可用于本发明,本实施例对此不作限制。
相应于上述方法实施例,本发明一实施例还提供了并行构建的装置。
如图3所示,本发明一实施例的并行构建的装置,应用于并行构建平台,该装置可以包括:
配置文件获取模块301,用于当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;
复制模块302,用于针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
构建模块303,用于基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
本发明实施例提供的方案中,指定平台为用于进行持续集成的平台,可以提供关于执行构建任务的构建环境的配置文件。因此,并行构建平台在检测到针对多份代码的多个构建任务并行创建时,可以从指定平台中分别获取每个构建任务的配置文件,以用于执行构建任务。并且,由于预存的构建模块为用于对任一份代码进行自动化的构建的模块,因此,可用构建模块可以用于实现相应的构建任务。在此基础上,并行构建平台可以针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块,保证每个构建任务对应一个可用构建模块,进而基于每个构建任务的配置文件,分别利用每个构建任务对应的构建模块,执行该构建任务,从而实现并行创建的多个构建任务的并行构建。与利用多个服务器的并行构建相比,无需大量服务器即可实现并行构建,节省大量服务器造成的购置成本和维护成本,从而降低并行构建的成本。
可选的,所述构建模块303,具体用于:
针对所述每个构建任务,分别向所述指定平台发送关于执行指定任务的第二通知,以使得所述指定平台执行所述指定任务,并将所述指定任务的执行结果返回给所述并行构建平台;
分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果;
其中,所述指定任务为预先在所述指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发所述构建模块执行该构建任务,得到执行结果。
可选的,所述指定任务还用于:
在所述将所述指定任务的执行结果返回给所述并行构建平台之后,清除该执行结果对应的构建模块、所述指定平台中的该执行结果以及该执行结果对应的配置文件。
可选的,所述指定任务还用于:
在所述复制模块302针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,监测所述预存的构建模块是否为最新版本;
如果否,利用预设更新模型对所述预存的构建模块进行更新。
如图4所示,本发明另一实施例的并行构建的装置,应用于并行构建平台,该装置可以包括:
配置文件获取模块401,具体包括发送子模块4011和接收子模块4012;
所述发送子模块4011,用于当检测到针对不同代码的多个构建任务并行创建时,向所述指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得所述指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给所述并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
所述接收子模块4012,用于针对每个所述第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件;
复制模块402,用于针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
构建模块403,用于基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
相应于上述实施例,本发明实施例还提供了一种电子设备,如图5所示,该设备可以包括:
处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器通503过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行上述存储器503上所存放的计算机程序时,实现上述实施例中任一并行构建的方法的步骤。
在具体应用中,本实施例中的电子设备为并行构建平台,或者,安装有应用形式的并行构建平台的电子设备。
本发明实施例提供的方案中,指定平台为用于进行持续集成的平台,可以提供关于执行构建任务的构建环境的配置文件。因此,并行构建平台在检测到针对多份代码的多个构建任务并行创建时,可以从指定平台中分别获取每个构建任务的配置文件,以用于执行构建任务。并且,由于预存的构建模块为用于对任一份代码进行自动化的构建的模块,因此,可用构建模块可以用于实现相应的构建任务。在此基础上,并行构建平台可以针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块,保证每个构建任务对应一个可用构建模块,进而基于每个构建任务的配置文件,分别利用每个构建任务对应的构建模块,执行该构建任务,从而实现并行创建的多个构建任务的并行构建。与利用多个服务器的并行构建相比,无需大量服务器即可实现并行构建,节省大量服务器造成的购置成本和维护成本,从而降低并行构建的成本。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于电子设备,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述实施例中任一并行构建的方法的步骤。
本发明实施例提供的方案中,指定平台为用于进行持续集成的平台,可以提供关于执行构建任务的构建环境的配置文件。因此,并行构建平台在检测到针对多份代码的多个构建任务并行创建时,可以从指定平台中分别获取每个构建任务的配置文件,以用于执行构建任务。并且,由于预存的构建模块为用于对任一份代码进行自动化的构建的模块,因此,可用构建模块可以用于实现相应的构建任务。在此基础上,并行构建平台可以针对每个构建任务,对并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块,保证每个构建任务对应一个可用构建模块,进而基于每个构建任务的配置文件,分别利用每个构建任务对应的构建模块,执行该构建任务,从而实现并行创建的多个构建任务的并行构建。与利用多个服务器的并行构建相比,无需大量服务器即可实现并行构建,节省大量服务器造成的购置成本和维护成本,从而降低并行构建的成本。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的并行构建的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字运维人员线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:DVD(Digital Versatile Disc,数字通用光盘))、或者半导体介质(例如:SSD(Solid StateDisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种并行构建的方法,其特征在于,应用于并行构建平台,所述方法包括:
当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;
针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
2.根据权利要求1所述的方法,其特征在于,所述从指定平台分别获取每个构建任务的配置文件,包括:
向所述指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得所述指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给所述并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
针对每个所述第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行相应的构建任务,得到该构建任务的构建结果,包括:
针对所述每个构建任务,分别向所述指定平台发送关于执行指定任务的第二通知,以使得所述指定平台执行所述指定任务,并将所述指定任务的执行结果返回给所述并行构建平台;
分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果;
其中,所述指定任务为预先在所述指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发所述构建模块执行该构建任务,得到执行结果。
4.根据权利要求3所述的方法,其特征在于,所述指定任务还用于:
在所述将所述指定任务的执行结果返回给所述并行构建平台之后,清除该执行结果对应的构建模块、所述指定平台中的该执行结果以及该执行结果对应的配置文件。
5.根据权利要求3所述的方法,其特征在于,在所述针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块之前,所述指定任务还用于:
监测所述预存的构建模块是否为最新版本;
如果否,利用预设更新模型对所述预存的构建模块进行更新。
6.一种并行构建的装置,其特征在于,应用于并行构建平台,所述装置包括:
配置文件获取模块,用于当检测到针对不同代码的多个构建任务并行创建时,从指定平台分别获取每个构建任务的配置文件;所述指定平台为用于进行持续集成的平台;所述配置文件用于设置相应的构建任务的构建环境;
复制模块,用于针对每个构建任务,对所述并行构建平台中预存的构建模块进行复制,得到该构建任务对应的可用构建模块;所述预存的构建模块为用于对任一份代码进行自动化的构建的模块;
构建模块,用于基于所述每个构建任务的配置文件,分别利用该构建任务对应的可用构建模块,执行该构建任务,得到该构建任务的构建结果。
7.根据权利要求6所述的装置,其特征在于,所述配置文件获取模块,包括:发送子模块和接收子模块;
所述发送子模块,用于向所述指定平台分别发送关于创建各构建任务对应的副任务的第一通知,以使得所述指定平台在接收到各第一通知时,针对每个第一通知,创建与该第一通知对应的副任务,并将该副任务创建完成时产生的配置文件,返回给所述并行构建平台;其中,任一副任务为指定平台中用于自动化的构建的任务;
所述接收子模块,用于针对每个所述第一通知,接收与该第一通知对应的配置文件,作为与该第一通知对应的创建任务的配置文件。
8.根据权利要求6至7任一项所述的装置,其特征在于,所述构建模块,具体用于:
针对所述每个构建任务,分别向所述指定平台发送关于执行指定任务的第二通知,以使得所述指定平台执行所述指定任务,并将所述指定任务的执行结果返回给所述并行构建平台;
分别将所接收的各执行结果,作为相应的第二通知对应的构建任务的构建结果;
其中,所述指定任务为预先在所述指定平台中构建的任务,用于针对每个构建任务,分别在按照该构建任务的配置文件配置的构建环境中,触发所述构建模块执行该构建任务,得到执行结果。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-5任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法步骤。
CN202010093659.1A 2020-02-14 2020-02-14 并行构建的方法、装置及设备 Active CN111338634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010093659.1A CN111338634B (zh) 2020-02-14 2020-02-14 并行构建的方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010093659.1A CN111338634B (zh) 2020-02-14 2020-02-14 并行构建的方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111338634A true CN111338634A (zh) 2020-06-26
CN111338634B CN111338634B (zh) 2023-05-23

Family

ID=71183415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010093659.1A Active CN111338634B (zh) 2020-02-14 2020-02-14 并行构建的方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111338634B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170010889A1 (en) * 2014-01-27 2017-01-12 Hewlett Packard Enterprise Development Lp Continuous integration with reusable context aware jobs
CN106445541A (zh) * 2016-09-30 2017-02-22 华胜信泰信息产业发展有限公司 软件构建方法、软件构建装置和软件构建***
CN110096304A (zh) * 2019-03-16 2019-08-06 平安城市建设科技(深圳)有限公司 基于Jenkins的任务构建方法、装置、设备及存储介质
CN110515625A (zh) * 2019-08-02 2019-11-29 苏州浪潮智能科技有限公司 任务构建方法、装置、设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170010889A1 (en) * 2014-01-27 2017-01-12 Hewlett Packard Enterprise Development Lp Continuous integration with reusable context aware jobs
CN106445541A (zh) * 2016-09-30 2017-02-22 华胜信泰信息产业发展有限公司 软件构建方法、软件构建装置和软件构建***
CN110096304A (zh) * 2019-03-16 2019-08-06 平安城市建设科技(深圳)有限公司 基于Jenkins的任务构建方法、装置、设备及存储介质
CN110515625A (zh) * 2019-08-02 2019-11-29 苏州浪潮智能科技有限公司 任务构建方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN111338634B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US10193961B2 (en) Building deployment pipelines for a production computing service using live pipeline templates
US10334058B2 (en) Matching and enforcing deployment pipeline configurations with live pipeline templates
US20170262298A1 (en) Maintaining deployment pipelines for a production computing service using live pipeline templates
US20080244565A1 (en) Dynamic software installation and configuration
CN107247601B (zh) 开发流程优化方法、装置及存储介质
CN109829096B (zh) 一种数据采集方法、装置、电子设备及存储介质
JP2014191603A (ja) ワークフロー制御プログラム、装置および方法
CN108776643B (zh) 一种基于版本控制流程的目标代码合并控制方法及***
US9542173B2 (en) Dependency handling for software extensions
CN111124480A (zh) 应用程序包的生成方法、装置、电子设备及存储介质
CN111158730A (zh) ***更新方法、装置、电子设备和可读存储介质
CN107621963B (zh) 一种软件部署方法、软件部署***及电子设备
CN112380170A (zh) 一种文件更新操作的关联方法、装置及计算机设备
CN110727575A (zh) 一种信息处理方法、***、装置、以及存储介质
CN111338634B (zh) 并行构建的方法、装置及设备
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN111027977A (zh) 一种数据验证的方法、装置及电子设备
CN112765188A (zh) 配置信息处理方法、配置管理***、电子设备及存储介质
CN111090491B (zh) 虚拟机任务状态的恢复方法、装置及电子设备
JP2018124935A (ja) センサネットワーク管理方法およびセンサネットワーク管理システム
CN112631931A (zh) 一种版本测试方法、装置、存储介质和电子设备
CN113379501A (zh) 消息推送方法、装置、电子设备及存储介质
CN111506339A (zh) 软件开发工具包sdk的变更信息处理方法及装置
CN112799797A (zh) 一种任务管理的方法和装置
CN110659042A (zh) 一种服务器固件管理方法与装置

Legal Events

Date Code Title Description
PB01 Publication
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

Effective date of registration: 20210525

Address after: 25, 5th floor, shuangjingfang office building, 3 frisha street, Singapore

Applicant after: Zhuomi Private Ltd.

Address before: Room 1101, Santai Commercial Building, 139 Connaught Road, Hong Kong, China

Applicant before: HONG KONG LIVE.ME Corp.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant