首页> 中国专利> 一种并行开发分支的持续集成方法和持续集成装置

一种并行开发分支的持续集成方法和持续集成装置

摘要

本发明涉及分布式技术领域,尤其本发明公开了一种并行开发分支的持续集成方法和持续集成装置,其中该方法包括:每隔设定时段对所有分支按照分支的创建时间进行排序;按照排序获取当前分支的代码提交次数;判断所述代码提交次数是否大于设定次数;当所述代码提交次数大于设定次数时,创建所述当前分支的持续集成流水线,其中所述持续集成流水线用于对所述当前分支进行持续集成后确定当前分支的分支代码中的问题;按照排序获取下一分支的代码提交次数,本发明可以在确保分支能够持续集成的基础上兼顾较高的分支流水线创建效率。

著录项

  • 公开/公告号CN114860254A

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 中国银行股份有限公司;

    申请/专利号CN202210520390.X

  • 发明设计人 农倩倩;

    申请日2022-05-13

  • 分类号G06F8/41(2018.01);G06F11/36(2006.01);

  • 代理机构北京三友知识产权代理有限公司 11127;北京三友知识产权代理有限公司 11127;

  • 代理人薛平;周晓飞

  • 地址 100818 北京市西城区复兴门内大街1号

  • 入库时间 2023-06-19 16:17:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-23

    实质审查的生效 IPC(主分类):G06F 8/41 专利申请号:202210520390X 申请日:20220513

    实质审查的生效

  • 2022-08-05

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及分布式技术领域,尤其涉及一种并行开发分支的持续集成方法和持续集成装置。

背景技术

在平时的代码开发过程中,经常同时存在3-4个甚至更多的并行开发任务,为了配合这些任务的开发,我们一般都要拉相应个数的开发分支。一般情况下,每个开发分支都需要进行持续集成,以便及时发现代码的集成问题,进而快速定位快速交付。持续集成的流水线包括代码静态检查、代码安全检查、单元测试、覆盖率检查、问题数检查和组包检查等等。

现有技术中通常是人工手动创建分支流水线用于分支的持续集成,但是在并行开发任务产生多个并行开发分支时,人工手动创建的方式极易发生其中某一分支遗漏的问题,无法确保所有有需要的分支都能够进行持续集成,且人工手动创建的方式效率较低。

因此现在亟需一种并行开发分支的持续集成方法,进而在确保分支能够持续集成的基础上兼顾较高的分支流水线创建效率。

发明内容

本发明实施例提供一种并行开发分支的持续集成方法和持续集成装置,用以确保分支能够持续集成的基础上兼顾较高的分支流水线创建效率,其中方法包括:

每隔设定时段对所有分支按照分支的创建时间进行排序;

按照排序获取当前分支的代码提交次数;

判断所述代码提交次数是否大于设定次数;

当所述代码提交次数大于设定次数时,创建所述当前分支的持续集成流水线,其中所述持续集成流水线用于对所述当前分支进行持续集成后确定当前分支的分支代码中的问题;

按照排序获取下一分支的代码提交次数。

优选的,所述创建所述当前分支的持续集成流水线进一步包括:

拉取所述当前分支的分支代码;

为所述当前分支创建独立的本地仓库,所述独立的本地仓库与所述当前分支对应且其中仅包括所述当前分支开发所需的所有集成包;

利用所述独立的本地仓库,对所述分支代码进行持续集成作业,得到持续集成结果;

分析所述持续集成结果,确定所述分支代码中的问题。

优选的,所述利用所述独立的本地仓库,对所述分支代码进行持续集成作业,得到持续集成结果进一步包括:

对所述分支代码进行编译,得到字节码文件;其中将所述独立的本地仓库作为编译所需的仓库;

对所述字节码文件进行单元测试,得到测试后的文件;

对所述测试后的文件进行处理,得到单元测试覆盖率;

对所述字节码文件和所述测试后的文件进行质量检查,得到质量数据,其中所述质量数据中包括问题信息和复杂度;

将所述单元测试覆盖率、所述问题信息和所述复杂度推送至质量服务器进行存储。

优选的,所述分析所述持续集成结果,确定所述分支代码中的问题进一步包括:

由所述质量服务器中获取所述单元测试覆盖率、所述问题信息和所述复杂度;

根据当前分支的覆盖率基线值分析所述单元测试覆盖率,确定所述分支代码中的第一问题;

根据当前分支的问题阈值分析所述问题信息,确定所述分支代码中的第二问题;

根据当前分支的复杂度基线值分析所述复杂度,确定所述分支代码中的第三问题。

优选的,所述根据当前分支的覆盖率基线值分析所述单元测试覆盖率,确定所述分支代码中的第一问题进一步包括:

判断所述单元测试覆盖率是否大于或等于所述当前分支的覆盖率基线值;

若是,则确定所述分支代码中不存在所述第一问题,并将所述当前分支的覆盖率基线值更新为所述单元测试覆盖率;

若否,则确定所述分支代码中存在所述第一问题。

优选的,所述根据当前分支的问题阈值分析所述问题信息,确定所述分支代码中的第二问题进一步包括:

判断所述问题信息中是否存在第一类问题;

若是,则确定所述分支代码中存在所述第二问题;

若否,则判断所述问题信息中第二类问题的数目是否小于或等于所述当前分支的问题阈值;

若是,则确定所述分支代码中不存在所述第二问题;

若否,则确定所述分支代码中存在所述第二问题。

优选的,所述根据当前分支的复杂度基线值分析所述复杂度,确定所述分支代码中的第三问题进一步包括:

判断所述复杂度是否小于或等于所述当前分支的复杂度基线值;

若是,则确定所述分支代码中不存在所述第三问题,并将所述当前分支的复杂度基线值更新为所述复杂度;

若否,则确定所述分支代码中存在所述第三问题。

本发明实施例还提供一种并行开发分支的持续集成装置,包括:

排序模块,用于每隔设定时段对所有分支按照分支的创建时间进行排序;

获取模块,用于按照排序获取当前分支的代码提交次数;

判断模块,用于判断所述代码提交次数是否大于设定次数;

当所述代码提交次数大于设定次数时,创建所述当前分支的持续集成流水线,其中所述持续集成流水线用于对所述当前分支进行持续集成后确定当前分支的分支代码中的问题;

循环模块,用于按照排序获取下一分支的代码提交次数。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项并行开发分支的持续集成方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项并行开发分支的持续集成方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项并行开发分支的持续集成方法。

本发明实施例中,与现有技术中的技术方案相比,通过本发明所述的持续集成方法,能够按照排序获取当前分支的代码提交次数,若当前分支为活跃分支,则创建持续集成流水线,确定当前分支的分支代码中的问题,这样按照排序可以依次对所有活跃分支创建持续集成流水线,本发明能够在保证活跃分支进行持续集成的基础上,兼顾保持较高的持续集成流水线的创建效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中提供的一种并行开发分支的持续集成方法的流程示意图;

图2为本发明实施例中提供的用于创建所述当前分支的持续集成流水线的流程示意图;

图3为本发明实施例中用于得到持续集成结果的流程示意图;

图4为本发明实施例中用于确定所述分支代码中的问题的流程示意图;

图5为本发明实施例中用于确定所述分支代码中的第一问题的流程示意图;

图6为本发明实施例中用于确定所述分支代码中的第二问题的流程示意图;

图7为本发明实施例中用于确定所述分支代码中的第三问题的流程示意图;

图8为本发明实施例中提供的一种并行开发分支的持续集成装置的模块结构示意图;

图9为本发明实施例中提供的计算机设备的结构示意图。

附图符号说明:

100、排序模块;

200、获取模块;

300、判断模块;

400、循环模块;

902、计算机设备;

904、处理器;

906、存储器;

908、驱动机构;

910、输入/输出模块;

912、输入设备;

914、输出设备;

916、呈现设备;

918、图形用户接口;

920、网络接口;

922、通信链路;

924、通信总线。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在平时的代码开发过程中,经常同时存在3-4个甚至更多的并行开发任务,为了配合这些任务的开发,我们一般都要拉相应个数的开发分支。一般情况下,每个开发分支都需要进行持续集成,以便及时发现代码的集成问题,进而快速定位快速交付。持续集成的流水线包括代码静态检查、代码安全检查、单元测试、覆盖率检查、问题数检查和组包检查等等。

现有技术中通常是人工手动创建分支流水线用于分支的持续集成,但是在并行开发任务产生多个并行开发分支时,人工手动创建的方式极易发生其中某一分支遗漏的问题,无法确保所有有需要的分支都能够进行持续集成,且人工手动创建的方式效率较低。

为了解决上述问题,本发明实施例提供了一种并行开发分支的持续集成方法。图1是本发明实施例提供的一种并行开发分支的持续集成方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

参照图1,本发明提供了一种并行开发分支的持续集成方法,包括:

S101:每隔设定时段对所有分支按照分支的创建时间进行排序;

S102:按照排序获取当前分支的代码提交次数;

S103:判断所述代码提交次数是否大于设定次数;

S104:当所述代码提交次数大于设定次数时,创建所述当前分支的持续集成流水线,其中所述持续集成流水线用于对所述当前分支进行持续集成后确定当前分支的分支代码中的问题;

S105:按照排序获取下一分支的代码提交次数。

在系统开发过程中,为了提高系统的开发效率,一般是并行开发多个分支,例如系统需要实现文件发送和文件接收两个功能,可以将文件发送作为一个开发分支,将文件接收作为另一个开发分支,两个分支并行开发。

为了进一步提高分支的开发质量,需要不间断的对每个分支进行持续集成,在本发明中,可以每隔设定时段对所有分支按照分支的创建时间排序,其中设定时段可以根据实际情况设定,其中分支的创建时间是指最初建立分支的时间,按照排序依次获取当前分支的代码提交次数,其中设定时段可以根据实际工况不同进行设置。

对于并行存在的多个开发分支来说,每个开发分支可能由多个开发人员分别对分支代码进行修改、新增或者删除,其中多个开发人员可能是在同一时间分别针对分支代码中的不同部分进行修改、新增或者删除,也可能是在不同时间针对分支代码中的同一部分进行修改、新增或者删除。对于每个开发人员来说,每次对分支代码中的相应部分进行修改、新增或者删除后,都会提交一次代码。而对于每个开发分支来说,每个开发分支都可以通过日志来记录代码提交人,提交时间,对应提交的代码文件等等。

其中,可以通过日志来获取当前分支的代码提交次数,本发明所述的当前分支的代码提交次数可以是指一天(24小时)中当前分支的代码提交次数,也可以是指设定时段中当前分支的代码提交次数。

假设当前分支的代码提交次数是指一天中当前分支的代码提交次数,则在S103之前需要先执行下述步骤:

步骤1.1:判断所述当前分支的代码提交次数相较于所述当前分支的提交基数是否增加;

步骤1.2:若是,则将所述提交基数更新为所述代码提交次数,并执行S103;

步骤1.3:若否,则按照排序获取下一分支的代码提交次数。

其中,对于每一分支来说,提交基数的初始值为0,每隔设定时段对所有分支按照分支的创建时间进行排序,按照排序获取当前分支的代码提交次数后,都会跟当前分支的提交基数比较,只有代码提交次数大于提交基数时,才说明当前分支产生了修改、新增或者删除,这样才有必要对当前分支进行后续的持续集成。当然,本发明所述的当前分支的提交基数的初始值每天都会重新置零,以确保结果的准确性。

本发明所述的当前分支的代码提交次数是指一天中当前分支的代码提交次数,或者是指设定时段中当前分支的代码提交次数,两种情况对应的设定次数不同,设定次数可以根据实际工况不同进行设置,不论是哪一种情况,凡是代码提交次数大于设定次数,就可认定当前分支属于活跃分支,即修改、新增或者删除多次的分支。

相对于当前分支的代码提交次数是指一天中当前分支的代码提交次数的情况来说,代码提交次数大于设定次数,说明当前分支在一天内修改、新增或者删除多次,有必要对其进行持续集成。相对于当前分支的代码提交次数是指设定时段中当前分支的代码提交次数的情况来说,说明当前分支在设定时段修改、新增或者删除多次,有必要对其进行持续集成。

而当代码提交次数不大于设定次数时,说明当前分支属于非活跃分支,即修改、新增或者删除较少,也就是说当前分支整体功能较为健全,分支代码存在问题的可能性较少,无需进行持续集成。这样有选择性的对部分活跃分支进行持续集成,可以提高系统开发效率,减少不必要的工作内容。

在本发明实施例中,当所述代码提交次数大于设定次数时,就可以创建当前分支的持续集成流水线,通过持续集成流水线对所述当前分支进行持续集成后确定当前分支的分支代码中的问题。

在确定当前分支的分支代码中的问题之后,或者当代码提交次数不大于设定次数时,即可按照排序获取下一分支的代码提交次数,然后执行上述S103至S105的步骤,直至按照排序将所有分支全部轮询一遍。

通过本发明所述的持续集成方法,能够按照排序获取当前分支的代码提交次数,若当前分支为活跃分支,则创建持续集成流水线,确定当前分支的分支代码中的问题,这样按照排序可以依次对所有活跃分支创建持续集成流水线,本发明能够在保证活跃分支进行持续集成的基础上,兼顾保持较高的持续集成流水线的创建效率。

在本发明实施例中,参照图2,所述创建所述当前分支的持续集成流水线进一步包括:

S201:拉取所述当前分支的分支代码;

S202:为所述当前分支创建独立的本地仓库,所述独立的本地仓库与所述当前分支对应且其中仅包括所述当前分支开发所需的所有集成包;

S203:利用所述独立的本地仓库,对所述分支代码进行持续集成作业,得到持续集成结果;

S204:分析所述持续集成结果,确定所述分支代码中的问题。

需要说明的是,每一分支都对应有独立的本地仓库,而该独立的本地仓库只供给该分支使用,其中仅包括该分支开发所需的所有集成包。例如A分支是实现文件发送功能,A分支对应的独立的本地仓库中只存储有文件发送所需的所有集成包;B分支是实现文件接收功能,B分支对应的独立的本地仓库中只存储有文件接收所需的所有集成包。当然,A分支对应的独立的本地仓库中的集成包可能与B分支对应的独立的本地仓库中的集成包存在重复,例如A分支的集成包包括a,b,c;B分支的集成包包括a,d,e,但是仍旧要将集成包a分别放置在两个分支分别对应的独立的本地仓库中,这样即可在每个分支创建持续集成流水线时做到相互隔离,防止多个分支之间发生冲突。

在本发明实施例中,参照图3,所述利用所述独立的本地仓库,对所述分支代码进行持续集成作业,得到持续集成结果进一步包括:

S301:对所述分支代码进行编译,得到字节码文件;其中将所述独立的本地仓库作为编译所需的仓库;

S302:对所述字节码文件进行单元测试,得到测试后的文件;

S303:对所述测试后的文件进行处理,得到单元测试覆盖率;

S304:对所述字节码文件和所述测试后的文件进行质量检查,得到质量数据,其中所述质量数据中包括问题信息和复杂度;

S305:将所述单元测试覆盖率、所述问题信息和所述复杂度推送至质量服务器进行存储。

其中测试后的文件包括测试报告文件和测试类字节码文件。在对所述字节码文件进行单元测试时,通过在字节码中插入探针字节码,探针字节码对执行过的字节码进行标记,通过这些标记统计出单元测试覆盖率。

其中对字节码文件和测试后的文件进行质量检查可以得到质量数据。质量数据中包括但不限于问题信息和复杂度,也包括其他例如重复度,成功率,案例数等,但是根据后续分析持续集成结果时的方式不同,可以将单元测试覆盖率以及质量数据中的一部分或者全部作为持续集成结果。

对字节码文件进行质量检查时,分析判定结构的判定分支数及嵌套数等,进而计算得到复杂度;通过缺陷模式匹配,可以统计存在的问题信息;匹配分析重复的代码进而获取重复度。还可以对单元测试阶段的测试报告、覆盖率报告进行统计,获取案例数、覆盖率等相关数据。

进一步的,本发明中持续集成结果包括单元测试覆盖率、问题信息和复杂度,将其推送至质量服务器进行存储,以备后续分析持续集成结果时调取使用。

参照图4,在本发明实施例中所述分析所述持续集成结果,确定所述分支代码中的问题进一步包括:

S401:由所述质量服务器中获取所述单元测试覆盖率、所述问题信息和所述复杂度;

S402:根据当前分支的覆盖率基线值分析所述单元测试覆盖率,确定所述分支代码中的第一问题;

S403:根据当前分支的问题阈值分析所述问题信息,确定所述分支代码中的第二问题;

S404:根据当前分支的复杂度基线值分析所述复杂度,确定所述分支代码中的第三问题。

具体的,参照图5,根据当前分支的覆盖率基线值分析所述单元测试覆盖率,确定所述分支代码中的第一问题进一步包括:

S501:判断所述单元测试覆盖率是否大于或等于所述当前分支的覆盖率基线值;

S502:若是,则确定所述分支代码中不存在所述第一问题,并将所述当前分支的覆盖率基线值更新为所述单元测试覆盖率;

S503:若否,则确定所述分支代码中存在所述第一问题。

其中当前分支的覆盖率基线值的初始值可以根据实际需求设定,当单元测试覆盖率大于或等于当前分支的覆盖率基线值时,说明分支代码无第一问题,此时需要将当前分支的覆盖率基线值更新成为单元测试覆盖率;当单元测试覆盖率小于当前分支的覆盖率基线值时,说明存在单元测试覆盖率过低的问题,即为第一问题。

具体的,参照图6,所述根据当前分支的问题阈值分析所述问题信息,确定所述分支代码中的第二问题进一步包括:

S601:判断所述问题信息中是否存在第一类问题;

S602:若是,则确定所述分支代码中存在所述第二问题;

S603:若否,则判断所述问题信息中第二类问题的数目是否小于或等于所述当前分支的问题阈值;

S604:若是,则确定所述分支代码中不存在所述第二问题;

S605:若否,则确定所述分支代码中存在所述第二问题。

在本发明中,可以根据问题的严重性将问题划分为第一类问题和第二类问题,可以分别设置第一类问题库和第二类问题库分别用于存储所有的第一类问题和所有的第二类问题,第一类问题属于严重问题,凡是问题信息中存在第一类问题,则确定分支代码中存在第二问题,而第二类问题属于一般问题,只有问题信息中第二类问题的数目大于问题阈值时,才确定分支代码中存在第二问题。

在S601中可以将问题信息分别与第一类问题库和第二类问题库进行匹配,确定问题信息中存在的是哪类问题,其中当前分支的问题阈值可以根据实际情况进行设定。

具体的,参照图7,所述根据当前分支的复杂度基线值分析所述复杂度,确定所述分支代码中的第三问题进一步包括:

S701:判断所述复杂度是否小于或等于所述当前分支的复杂度基线值;

S702:若是,则确定所述分支代码中不存在所述第三问题,并将所述当前分支的复杂度基线值更新为所述复杂度;

S703:若否,则确定所述分支代码中存在所述第三问题。

其中当前分支的复杂度基线值的初始值可以根据实际需求设定,当复杂度小于或等于当前分支的复杂度基线值时,说明分支代码无第三问题,此时需要将当前分支的复杂度基线值更新成为复杂度;当复杂度大于当前分支的复杂度基线值时,说明存在复杂度过高的问题,即为第三问题。

进一步的,可以将分支代码中的问题通过展示页面进行进一步展示,需要说明的是,展示页面可以展示一天(24小时)中分支代码中的问题,对于非活跃分支无需进行展示,只是展示活跃分支,在展示时,可以通过不同颜色表征当前分支的状态,例如绿色表示当前分支的分支代码中不存在问题,红色表示当前分支的分支代码中存在问题等等。

本发明实施例中还提供了一种并行开发分支的持续集成装置,如下面的实施例所述。由于该装置解决问题的原理与一种并行开发分支的持续集成方法相似,因此该装置的实施可以参见一种并行开发分支的持续集成方法的实施,重复之处不再赘述。

参照图8,一种并行开发分支的持续集成装置,包括:

排序模块100,用于每隔设定时段对所有分支按照分支的创建时间进行排序;

获取模块200,用于按照排序获取当前分支的代码提交次数;

判断模块300,用于判断所述代码提交次数是否大于设定次数;

当所述代码提交次数大于设定次数时,创建所述当前分支的持续集成流水线,其中所述持续集成流水线用于对所述当前分支进行持续集成后确定当前分支的分支代码中的问题;

循环模块400,用于按照排序获取下一分支的代码提交次数。

在本发明实施例中,能够按照排序获取当前分支的代码提交次数,若当前分支为活跃分支,则创建持续集成流水线,确定当前分支的分支代码中的问题,这样按照排序可以依次对所有活跃分支创建持续集成流水线,本发明能够在保证活跃分支进行持续集成的基础上,兼顾保持较高的持续集成流水线的创建效率。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一所示的并行开发分支的持续集成方法。

参照图9所示,其中上述一种确定接口正确性的方法运行在计算机设备902上。计算机设备902可以包括一个或多个处理器904,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器906,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器906上并可在处理器904上运行的计算机程序,所述计算机程序被所述处理器904运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备902可以执行相关联指令的任一操作。计算机设备902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。

计算机设备902还可以包括输入/输出模块910(I/O),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914)。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(GUI)。在其他实施例中,还可以不包括输入/输出模块910(I/O)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。计算机设备902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。

通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所示的并行开发分支的持续集成方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一所示的并行开发分支的持续集成方法。

本发明实施例中,与现有技术中的技术方案相比,通过本发明所述的持续集成方法,能够按照排序获取当前分支的代码提交次数,若当前分支为活跃分支,则创建持续集成流水线,确定当前分支的分支代码中的问题,这样按照排序可以依次对所有活跃分支创建持续集成流水线,本发明能够在保证活跃分支进行持续集成的基础上,兼顾保持较高的持续集成流水线的创建效率。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

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

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号