CN106557308A - 一种软件持续集成方法及装置 - Google Patents

一种软件持续集成方法及装置 Download PDF

Info

Publication number
CN106557308A
CN106557308A CN201510633336.6A CN201510633336A CN106557308A CN 106557308 A CN106557308 A CN 106557308A CN 201510633336 A CN201510633336 A CN 201510633336A CN 106557308 A CN106557308 A CN 106557308A
Authority
CN
China
Prior art keywords
code module
code
control system
source code
user
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
CN201510633336.6A
Other languages
English (en)
Other versions
CN106557308B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510633336.6A priority Critical patent/CN106557308B/zh
Publication of CN106557308A publication Critical patent/CN106557308A/zh
Application granted granted Critical
Publication of CN106557308B publication Critical patent/CN106557308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供的软件持续集成方法及装置,按照需求利用依赖关系获取到对应的代码模块,从而减少了交付软件的复杂度以及大小,提高获取代码模块的效率,降低了生成软件的占用空间。

Description

一种软件持续集成方法及装置
技术领域
本发明涉及软件领域,特别涉及一种软件持续集成方法及装置。
背景技术
软件持续集成是一种自动化的软件创建与测试过程,持续集成过程中,开发团队可以每天多次构建他们的软件。作为一种软件实践,持续集成可以让开发团队在软件构建时持续收到反馈,及时发现软件缺陷,并对其进行修复,而不必等到开发周期后期才寻找和修复缺陷,因此软件持续集成可对软件的开发效率和投入成本造成不同的影响。
现行软件流程需要工程师手动编写大量的配置文件,一个最终成功交付的软件,往往要经过多个工具的处理,每个工具读取格式不同且繁琐的配置文件才能正确运行,往往会因为工程师多输入一个tab键等情况,产生不可控的结果,有些时候需要专人维护,如果在软件升级更新时忘记更新配置文件,则可能产生不可知的后果,现有技术只能完成简单的打包动作,对软件包占用空间的大小不能进行控制,导致生成的软件包占用大量空间。
发明内容
有鉴于此,本发明实施例提供了一种软件持续集成方法及装置。
本发明的一个目的是提供一种软件持续集成方法,包括:
判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块;
当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查;
当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合;
获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块;
根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块;
对所述获取与所述功能对应的代码模块进行封装并进行反馈。
可选地,包括:所述预设条件为接收到进行构建信号或达到预设构建时间,
所述判断达到预设条件时访问源码控制系统,包括:
接收到进行构建信号或达到预设构建时间时访问源码控制系统。
可选地,所述对所述获取与所述功能对应的代码模块进行封装并进行反馈,包括:
对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理;
对经过处理的代码模块和资源文件进行封装得到软件包;
将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
可选地,所述检测到所述源码控制系统中的任意代码模块发生变化,包括:
获取前一次代码检测时所记录的任意代码模块的第一时间戳;
获取所述代码模块在当前进行代码检测时的第二时间戳;
当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
可选地,所述当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查之后,还包括:
当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
可选地,所述获取用户的请求信息,包括:
获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。
本发明的另一个目的是提供一种软件持续集成装置,其特征在于,包括:
访问单元,用于判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块;
代码检查单元,用于当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查;
第一获取单元,用于当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合;
第二获取单元,用于获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块;
第三获取单元,用于根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块;
封装单元,用于对所述获取与所述功能对应的代码模块进行封装并进行反馈。
可选地,所述访问单元还用于当接收到进行构建信号或达到预设构建时间时访问源码控制系统。
可选地,所述封装单元还用于对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理;
对经过处理的代码模块和资源文件进行封装得到软件包;及
将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
可选地,还包括:
第四获取单元,用于获取前一次代码检测时所记录的任意代码模块的第一时间戳;及获取所述代码模块在当前进行代码检测时的第二时间戳;
确定单元,用于当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
可选地,还包括:
异常处理单元,用于当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
可选地,第二获取单元还用于获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。
本发明提供的软件持续集成方法及装置,按照需求利用依赖关系获取到对应的代码模块,从而减少了交付软件的复杂度以及大小,提高获取代码模块的效率,降低了生成软件的占用空间。
附图说明
图1是本发明的软件持续集成方法的一种实施例的流程图;
图2是本发明的软件持续集成方法的另一种实施例的流程图;
图3是本发明的软件持续集成装置一种实施例的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
结合图1所示,本发明提供的软件持续集成方法的一种实施例,包括:
S101、判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块。
预设条件可以是输入一个时刻,当到达这个时刻时候开始进行构建操作,或者接收一个构建信号,当接收到这个构建信号触发构建操作,源码控制系统用于管理代码模块,每个代码模块都用于实现某项功能编写,代码模块还可以调用所需要的资源文件,资源文件可以包括图片、视频资料等,实现某项功能所需的代码模块至少为一个,提到的依赖关系则是对应解决某项功能所需要的代码模块的一个集合,即这个集合中的代码模块相关联可以用来解决,可以得到一个源码控制系统中可以包括多个依赖关系,每一种依赖关系可以实现一种功能,根据用户需要的功能可以利用这个功能对应的依赖关系查找到关联的代码模块,将这些代码模块进行封装即可得到实现对应功能的软件。
S102、当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查。
对代码模块检测是否发生变化的方法可以采用时间戳的方式,例如每个存储代码模块都具有时间戳的,即对代码模块进行最后一次修改的时间,每次完成代码模块检查时候会记录这个时间戳,在下一次进行检查时候检测这个代码模块的时间戳与上一次记录的时间戳是否一致,若两次记录的时间戳不一致则说明该代码模块被修改过,则代码模块对应的数据发生变化,这时可以开始对代码模块的构建操作,对于检测代码模块是否发生变化还有一种方式,将代码模块对应的数据进行读取生成相同的字符串,将两次检测时生成的字符串进行比较,当字符串不同时可以确定代码模块对应的数据内容发生变化,需要说明的是在对发生变化的代码模块处理之前需要对代码的可靠性进行检查,当被修改的代码模块的内容出现错误时候,例如,有代码重复的、有语法错误、部分代码会造成整个代码模块不利于理解等,这些属于代码的异常情况,运行该代码模块时候会出现不良的情况发生,所以需要进行代码可靠性的检查,在出现代码模块异常时候,将这个异常情况记录到日志中,当然,对于代码的检查涉及到的具体步骤,本领域普通技术人员应该了解,具体不进行限定,可以实现对代码可靠性的检查即可。
S103、当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合。
通过代码可靠性检查之后没有发现源码控制系统中的代码模块出现异常情况时,源码控制系统中的各个代码模块可以进行构建使用,利用依赖关系对源码控制系统中的代码模块进行梳理,这里提到的依赖关系也可以称为耦合关系,即代码模块之间的关联情况,对于计算代码模块的耦合关系,本领域普通技术人员应当了解,此处不做限定。
S104、获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块。
源码控制系统中包括多个代码模块,可以实现不同的功能,根据所需要实现的不同功能将需要使用到的代码模块组合起来成为软件,不需要其他不相关的代码模块组合,这样可以使得软件的都成更精简,生成的软件占用的空间也可以更小,用户的请求信息可以通过多种途径呈现,例如可以通过用户在终端输入所需要的功能,也可以通过用户配置的文档,通过对文档的分析获取所需要的功能,还可以利用图形界面,即用户通过点击所需要功能的图形界面进行请求信息的表达,例如,用户需要绘制圆形的软件,则可以通过点击绘制圆形的图形界面进行选择,则可以根据用户选择的图形界面获取到用户请求的功能,在请求信息中可以包括至少一个功能,而实现一个功能可能需要至少一个代码模块,每个功能可以利用依赖关系将整个实现这个功能的所需代码模块一并获取,例如一个软件为用户提供了六种功能,但是一些用户只需要其中的几种,可以按照用户所需的功能进行封装,从而减少了交付软件的复杂度以及大小,利用依赖关系可以实现对代码模块的精准获取,提高获取代码模块的效率,降低了生成软件的占用空间。
S105、根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块。
对源码控制系统中所有的代码模块进行了依赖关系的梳理,相当于将整个源码控制系统中的代码模块的耦合关系进行了整理,并且根据请求信息中所需要的功能,可以知道用户意图,将用户意图和源码控制系统中整理好的依赖关系可以得到完成用户意图所需要用到的所有代码模块,为了方便理解,例如,在源码控制系统中将代码模块进行整理后,将对应绘图功能的代码模块进行依赖关系的整理,可以得到绘图功能对应一系列代码模块,当收到的请求信息中包括绘图功能时,可以在源码控制系统中利用依赖关系查找到绘图功能对应的代码模块,为后续进行封装做好准备。
S106、对所述获取与所述功能对应的代码模块进行封装并进行反馈。
对获取到的代码模块进行封装,封装的过程即生成软件的过程,通过封装生成供用户使用的软件,再对代码模块进行封装时,可以对代码模块和代码模块引用的资源文件进行压缩,以便进一步地降低生成软件所占用的空间,对代码模块进行封装后可以对相关工程师进行告知反馈,使得相关了解软件生成的进展,反馈的方式可以采用邮件将生成的软件发送至相关工程师,还可以将生成软件的过程和反馈的情况记录到日志中,具体不做限定。
本发明提供的软件持续集成方法,按照需求利用依赖关系获取到对应的代码模块,从而减少了交付软件的复杂度以及大小,提高获取代码模块的效率,降低了生成软件的占用空间。
结合图2所示,本发明提供的软件持续集成方法的一种实施例,包括:
S201、接收到进行构建信号或达到预设构建时间时访问源码控制系统。
构建信号可以利用检测到代码模块发生变化而触发,即当发现源码控制系统中的代码模块出现变化时可以生成构建信号,到检测到构建信号时则可以开始进行构建操作,这里预设构建时间可以采用固定时间进行构建操作,例如预设构建时间为一小时或一天,即构建的周期为一小时或一天,达到一小时或一天则开始进行构建,构建操作是一个生成中间数据的过程,即将源码控制系统中的代码模块进行梳理,供后续进行按照功能选取代码模块做好准备。
S202、判断源码控制系统中是否出现任意代码模块发生变化,若出现执行S203,否则执行S201。
S203、当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查。
本实施例中,对于检测代码模块是否发生变化的方法采用时间戳的方式,具体包括:
S1、获取前一次代码检测时所记录的任意代码模块的第一时间戳;
S2、获取所述代码模块在当前进行代码检测时的第二时间戳;
S3、当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
若第一时间戳和第二时间戳相同则确定控制系统未发生变化。
S204、判断所述源码控制系统中的代码模块是否出现异常,若出现则执行S205,否则执行S206;
S205、当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
当检测到源码模块中出现任意代码模块则需要及时告知相关工程师进行处理,如果继续进行构建操作可能会导致不可预测的情况出现,所以此时需要暂停构建操作,有相关工程师进行异常情况的处理,异常处理结束可以恢复构建操作,告知相关工程师的方式可以采用邮件发送,将出现异常的时间、代码模块及相应问题及时告知相关工程师,并将这些异常信息记录到第二日之中,这里的第二日志为了方便与解析依赖关系时记录日志的过程相区别,解析依赖关系时记录日志为第一日志,供工程师阅读使用,第二日志供计算机内部使用,对于第二日志记录的内容不进行限定,通过利用构建,可发现代码中不合理的地方,及时提醒工程师。
S206、当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合。
这个步骤中将源码控制系统中的依赖关系进行了梳理,在前面的实施例中已经进行相关介绍,此处不进行赘述。
S207、获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块。
获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息,配置的文档后续系统可以直接自动进行读取;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。用户通过选择所需功能对应的图形界面即可表达请求信息,对于用户表达请求信息的方式还可以采用其他方式,此处不进行列举。
S208、根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块。
步骤208与上一实施例中步骤S105相类似,此处不作赘述。
S209、对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理。
进行精简压缩处理时可以利用依赖关系对获取出来准备进行生成软件的代码模块进行精简,与用户所需功能不相关的代码模块进行去除,资源文件的精简依赖与引用它的代码模块,使用代码精简后的依赖关系可以精简资源文件,再对获取到与所需功能对应的代码模块所对应的资源文件进行压缩,这些资源文件是指代码模块在执行时调用的资源,例如调用图片或者视频等,为了减少软件的占用空间,可以将这些资源文件进行压缩,例如将图像进行压缩,对视频的高清程度进行调整,较少的占用空间以使得生成软件占用的空间大小可以减低,需要说明的是,本文中提到的占用空间大小是指软件在存储空间中所使用的空间,对于资源文件进行进一步地压缩可以使得生成的软件空间更小,对于软件的压缩,可以根据用户意图,用户意图即为用户所需的功能,只对外表现用户需要的部分,对于用户不关心的部分进行隐藏,,例如获取了用户所需的功能之后,根据功能获取对应的代码模块,对于仅部分内容关联的代码模块可以实现其他功能的代码模块仅供内部显示使用不进行相关功能的显示,例如用户在进行绘图时会用到铅笔工具,铅笔工具中会包括多种粗细型号可选,如0.5毫米、0.6毫米,用户想使用0.5毫米的铅笔进行绘图时,这是所需的功能对应为0.5毫米的铅笔,而在实际中,0.5毫米的功能实现和0.6毫米的功能存在一定依赖关系,即实现0.6毫米的代码模块中有部分内容与0.5毫米的功能存在关联,此时将0.5毫米和0.6毫米的代码模块都进行抓取,但在对外显示功能时只显示0.5毫米铅笔对应的功能选择,对于0.6毫米铅笔不进行显示,以便实现对代码模块的压缩。
S210、对经过处理的代码模块和资源文件进行封装得到软件包。
经过压缩处理的代码模块和资源文件进行封装处理生成软件包,这个软件包即是采用持续集成所要得到的结果,对于封装的过程可以采用现有技术的方案,本领域普通技术人员应该了解,具体不做限定。
S211、将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
将生成的软件包通过邮件发送给相关的工程师,第一日志用于记录进行封装过程涉及到的信息,供工程师查阅使用,可以包括向工程师发送邮件的内容,当然还可以包括其他信息,具体不做限定。
结合图3所示,本发明提供的软件持续集成装置的一种实施例,包括:
访问单元301,用于判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块;
代码检查单元302,用于当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查;
第一获取单元303,用于当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合;
第二获取单元304,用于获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块;
第三获取单元305,用于根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块;
封装单元306,用于对所述获取与所述功能对应的代码模块进行封装并进行反馈。
可选地,所述访问单元301还用于当接收到进行构建信号或达到预设构建时间时访问源码控制系统。
可选地,所述封装单元306还用于对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理;
对经过处理的代码模块和资源文件进行封装得到软件包;及
将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
可选地,还包括:
第四获取单元307,用于获取前一次代码检测时所记录的任意代码模块的第一时间戳;及获取所述代码模块在当前进行代码检测时的第二时间戳;
确定单元,用于当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
可选地,所述装置还包括:
异常处理单元308,用于当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
可选地,第二获取单元304还用于获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。
本发明提供的软件持续集成装置,按照需求利用依赖关系获取到对应的代码模块,从而减少了交付软件的复杂度以及大小,提高获取代码模块的效率,降低了生成软件的占用空间。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种软件持续集成方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种软件持续集成方法,其特征在于,包括:
判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块;
当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查;
当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合;
获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块;
根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块;
对所述获取与所述功能对应的代码模块进行封装并进行反馈。
2.根据权利要求1所述的方法,其特征在于,包括:所述预设条件为接收到进行构建信号或达到预设构建时间,
所述判断达到预设条件时访问源码控制系统,包括:
接收到进行构建信号或达到预设构建时间时访问源码控制系统。
3.根据权利要求1所述的方法,其特征在于,所述对所述获取与所述功能对应的代码模块进行封装并进行反馈,包括:
对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理;
对经过处理的代码模块和资源文件进行封装得到软件包;
将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
4.根据权利要求1所述的方法,其特征在于,所述检测到所述源码控制系统中的任意代码模块发生变化,包括:
获取前一次代码检测时所记录的任意代码模块的第一时间戳;
获取所述代码模块在当前进行代码检测时的第二时间戳;
当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
5.根据权利要求1所述的方法,其特征在于,所述当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查之后,还包括:
当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
6.根据权利要求1所述的方法,其特征在于,所述获取用户的请求信息,包括:
获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。
7.一种软件持续集成装置,其特征在于,包括:
访问单元,用于判断达到预设条件时访问源码控制系统,所述源码控制系统包括多个代码模块;
代码检查单元,用于当检测到所述源码控制系统中的任意代码模块发生变化时对所述源码控制系统中的代码模块进行代码检查;
第一获取单元,用于当所述源码控制系统中的代码模块未出现异常时获取所述源码控制系统中的各个代码模块的依赖关系,所述依赖关系用于表示实现对应功能的相关联代码模块的集合;
第二获取单元,用于获取用户的请求信息,所述请求信息包括用户所需要的功能,所述功能对应至少一个代码模块;
第三获取单元,用于根据所述请求信息和所述依赖关系从所述源码控制系统中获取与所述功能对应的代码模块;
封装单元,用于对所述获取与所述功能对应的代码模块进行封装并进行反馈。
8.根据权利要求7所述的装置,其特征在于,所述访问单元还用于当接收到进行构建信号或达到预设构建时间时访问源码控制系统。
9.根据权利要求7所述的装置,其特征在于,所述封装单元还用于对所需功能对应代码模块及所述代码模块对应的资源文件进行精简压缩处理;
对经过处理的代码模块和资源文件进行封装得到软件包;及
将得到的软件包通过邮件进行发布并生成第一日志,所述第一日志至少记录记录邮件发送内容。
10.根据权利要求7所述的装置,其特征在于,还包括:
第四获取单元,用于获取前一次代码检测时所记录的任意代码模块的第一时间戳;及获取所述代码模块在当前进行代码检测时的第二时间戳;
确定单元,用于当所述第一时间戳和第二时间戳不相同时确定所述源码控制系统发生变化。
11.根据权利要求7所述的装置,其特征在于,还包括:
异常处理单元,用于当所述源码控制系统中的代码模块出现异常时暂停构建操作、将异常情况进行反馈并记录到第二日志中,所述第二日志至少记录出现异常对应时刻值。
12.根据权利要求7所述的装置,其特征在于,第二获取单元还用于获取用户在终端输入的请求信息;或
获取用户配置的文档,所述文档包括用户的请求信息;或
获取用户选择的图形界面,所述图形界面用于标识用户的请求信息。
CN201510633336.6A 2015-09-29 2015-09-29 一种软件持续集成方法及装置 Active CN106557308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510633336.6A CN106557308B (zh) 2015-09-29 2015-09-29 一种软件持续集成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510633336.6A CN106557308B (zh) 2015-09-29 2015-09-29 一种软件持续集成方法及装置

Publications (2)

Publication Number Publication Date
CN106557308A true CN106557308A (zh) 2017-04-05
CN106557308B CN106557308B (zh) 2020-11-03

Family

ID=58415952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510633336.6A Active CN106557308B (zh) 2015-09-29 2015-09-29 一种软件持续集成方法及装置

Country Status (1)

Country Link
CN (1) CN106557308B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213516A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 Svn中代码同步与通知的方法、存储介质、设备和系统
CN109359484A (zh) * 2018-08-22 2019-02-19 北京中测安华科技有限公司 云平台的安全审计终端日志的处理方法、装置、设备和介质
CN110442498A (zh) * 2019-06-28 2019-11-12 平安科技(深圳)有限公司 异常数据节点的定位方法、装置、存储介质及计算机设备
CN110990055A (zh) * 2019-12-19 2020-04-10 南京邮电大学 一种基于程序分析的Pull Request功能分类方法
CN111338686A (zh) * 2020-02-12 2020-06-26 中国平安人寿保险股份有限公司 一种软件构建方法、设备、服务器及可读存储介质
CN113961534A (zh) * 2021-12-21 2022-01-21 荣耀终端有限公司 生成日志文件的方法和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650653A (zh) * 2009-09-04 2010-02-17 中兴通讯股份有限公司 每日构建方法和装置
CN102591661A (zh) * 2011-12-30 2012-07-18 苏州汉清投资管理有限公司 一种实现软件集成的系统
CN102662946A (zh) * 2012-02-20 2012-09-12 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
US8429611B2 (en) * 2004-04-23 2013-04-23 Metasonic Ag Method and system for generating a source code for a computer program
CN104077140A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于持续集成的自动化编译方法和编译装置
CN104423948A (zh) * 2013-09-02 2015-03-18 阿里巴巴集团控股有限公司 自动化脚本运行方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429611B2 (en) * 2004-04-23 2013-04-23 Metasonic Ag Method and system for generating a source code for a computer program
CN101650653A (zh) * 2009-09-04 2010-02-17 中兴通讯股份有限公司 每日构建方法和装置
CN102591661A (zh) * 2011-12-30 2012-07-18 苏州汉清投资管理有限公司 一种实现软件集成的系统
CN102662946A (zh) * 2012-02-20 2012-09-12 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
CN104423948A (zh) * 2013-09-02 2015-03-18 阿里巴巴集团控股有限公司 自动化脚本运行方法及装置
CN104077140A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于持续集成的自动化编译方法和编译装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213516A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 Svn中代码同步与通知的方法、存储介质、设备和系统
CN109359484A (zh) * 2018-08-22 2019-02-19 北京中测安华科技有限公司 云平台的安全审计终端日志的处理方法、装置、设备和介质
CN110442498A (zh) * 2019-06-28 2019-11-12 平安科技(深圳)有限公司 异常数据节点的定位方法、装置、存储介质及计算机设备
CN110442498B (zh) * 2019-06-28 2022-11-25 平安科技(深圳)有限公司 异常数据节点的定位方法、装置、存储介质及计算机设备
CN110990055A (zh) * 2019-12-19 2020-04-10 南京邮电大学 一种基于程序分析的Pull Request功能分类方法
CN110990055B (zh) * 2019-12-19 2022-07-01 南京邮电大学 一种基于程序分析的Pull Request功能分类方法
CN111338686A (zh) * 2020-02-12 2020-06-26 中国平安人寿保险股份有限公司 一种软件构建方法、设备、服务器及可读存储介质
CN113961534A (zh) * 2021-12-21 2022-01-21 荣耀终端有限公司 生成日志文件的方法和电子设备

Also Published As

Publication number Publication date
CN106557308B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
CN106557308A (zh) 一种软件持续集成方法及装置
CN107273280B (zh) 一种日志处理方法、装置、电子设备和存储介质
CN106951364B (zh) 测试方法及装置
CN106936441B (zh) 一种数据压缩方法和装置
CN102831052B (zh) 测试用例自动化生成装置及方法
CN104461903B (zh) 基于浏览器的测试客户端的方法和装置
CN107659455B (zh) 一种iOS端Mock数据的方法、存储介质、设备及系统
CN107341033A (zh) 一种数据统计方法、装置、电子设备和存储介质
CN108490336B (zh) 板卡测试方法、系统、可读存储介质及计算机设备
CN104572440B (zh) 一种测试软件兼容性的方法和装置
CN111240876B (zh) 微服务的故障定位方法、装置、存储介质及终端
CN101738550A (zh) 电子装置测试装置及测试方法
US11385878B2 (en) Model deployment method, model deployment device and terminal equipment
CN112115038A (zh) 一种应用测试方法、装置和存储介质
CN114092252A (zh) 一种区块链交易执行方法、装置、设备及可读存储介质
CN114996103A (zh) 页面异常检测方法、装置、电子设备和存储介质
CN114860699A (zh) 数据质量检测方法、装置、设备和存储介质
CN106302011B (zh) 基于多端的测试方法及终端
CN110442059A (zh) 被控设备拓展方法、装置及控制设备
CN108563578A (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN115437903A (zh) 接口测试方法、装置、设备、存储介质及程序
CN106713666A (zh) 验证信息的识别显示方法、装置
CN110187385B (zh) 地震数据获取方法、地震数据处理方法及装置
CN113051105A (zh) 数据处理方法、装置、设备及存储介质
CN113495828A (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
GR01 Patent grant
GR01 Patent grant