CN115098069A - 集成流水线建立方法、系统、电子设备及可读存储介质 - Google Patents
集成流水线建立方法、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115098069A CN115098069A CN202210714129.3A CN202210714129A CN115098069A CN 115098069 A CN115098069 A CN 115098069A CN 202210714129 A CN202210714129 A CN 202210714129A CN 115098069 A CN115098069 A CN 115098069A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- task
- environment
- pipeline
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及代码集成技术领域,公开了一种集成流水线建立方法、系统、电子设备及可读存储介质,该方法通过获取目标语言类型、目标版本类型、代码模板集合和容器环境池,根据目标语言类型匹配得到的目标集成模板确定代码编译任务,根据目标版本类型选择得到的目标环境生成项目部署任务,进而根据包括代码编译任务和项目部署任务的流水线任务建立代码集成流水线,相较于人工建立集成模板和部署环境,通过目标语言类型确定代码编译任务、通过软件版本信息确定项目部署任务,简化了集成模板和部署环境的确定方法,从而实现代码集成流水线的自动建立,提高代码集成流水线的生成效率。
Description
技术领域
本发明涉及代码集成技术领域,尤其涉及一种集成流水线建立方法、系统、电子设备及可读存储介质。
背景技术
随着软件产业的不断发展,软件规模也在不断增加,其代码的复杂程度也在攀升,因此,软件代码编写也需要更多角色进行参与,例如软件开发工程师、软件测试工程师、软件运维工程师等,因此,包括敏捷开发、CI/CD(Code Commit and Initial Testing/Bakeand Deploy,持续集成/持续交付)、DevOps(Development/Operations,过程、方法和系统)等软件技术应运而生,它们的出现大大缩短代码集成的时间,提高了软件交付的速率,让软件版本的更新变得更快,从而有助于发现问题、得到用户反馈,降低修改软件的代价。
目前,CI/CD需要通过代码集成流水线对代码进行集成,其中,代码集成流水线的环节复杂,包括代码仓库、制品库、配置中心、构建环境、测试中心等,由于代码集成流水线逻辑复杂,不同参数均会造成代码集成流水线的差异化配置,不同类型的参与人员需要对代码集成、项目部署等每个步骤进行参数确定,因此,人工建立代码集成流水线的效率太低,不符合轻便快捷的数字化企业理念。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
鉴于以上所述现有技术的缺点,本发明公开了一种集成流水线建立方法、系统、电子设备及可读存储介质,以实现代码集成流水线的自动建立,提高代码集成流水线的生成效率。
本发明公开了一种集成流水线建立方法,包括:获取目标语言类型、目标版本类型、代码模板集合和容器环境池,其中,所述代码模板集合包括多个代码语言类型对应的预设集成模板,所述容器环境池包括多个预设容器化环境;根据所述目标语言类型从所述代码模板集合进行数据匹配,得到所述目标语言类型对应的目标集成模板,根据所述目标集成模板确定代码编译任务,所述代码编译任务用于根据所述目标集成模板对源代码进行编译,得到编译产物,其中,所述源代码通过对预设的代码仓库进行代码拉取得到;根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,根据所述目标环境生成项目部署任务,所述项目部署任务用于将所述编译产物对应的生产项目部署在所述目标环境中;根据流水线任务建立代码集成流水线,其中,所述流水线任务包括所述代码编译任务和所述项目部署任务。
可选地,根据流水线任务建立代码集成流水线之前,所述方法还包括以下至少一种:获取所述代码仓库的仓库地址,根据所述目标语言类型和所述仓库地址确定代码拉取任务,将所述代码拉取任务加入所述流水线任务,其中,所述代码拉取任务用于根据所述目标语言类型对预设的代码仓库进行代码拉取,得到所述目标语言类型对应的源代码;根据所述目标语言类型从预设的扫描规则集合进行数据匹配,得到所述目标语言类型对应的目标扫描规则,根据所述目标扫描规则确定代码质量扫描任务,将所述代码质量扫描任务加入所述流水线任务,其中,所述代码质量扫描任务用于根据所述目标扫描规则对所述编译产物进行代码质量测试,若测试结果满足预设的代码质量要求,则执行接口测试任务;生成接口测试任务,将所述接口测试任务加入所述流水线任务,其中,所述接口测试任务包括确定所述编译产物对应的代码接口,并对所述代码接口进行接口测试,得到所述编译产物对应的接口测试结果,若所述接口测试结果满足预设的接口测试要求,则执行版本管理任务;根据预设的制品库确定版本管理任务,将所述版本管理任务加入所述流水线任务,其中,所述版本管理任务包括将所述编译产物作为生产项目,并上传至所述制品库。
可选地,根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,包括:所述目标版本类型包括开发版本和正式版本;若所述项目版本信息包括开发版本,则根据所述开发版本从预设的容器环境池中进行环境选择,得到所述开发版本对应的测试环境,将所述测试环境确定为目标环境,其中,所述测试环境用于模拟所述生产项目的功能开发和服务运行;若所述项目版本信息包括正式版本,则根据所述正式版本从所述容器环境池中进行环境选择,得到所述正式版本对应的正式环境,将所述正式环境确定为目标环境,其中,所述正式环境包括预生产环境和/或生产环境,所述预生产环境用于模拟所述生产项目的真实运行,所述生产环境用于模拟所述生产项目的版本更迭。
可选地,接口测试任务通过以下方式确定所述生产项目对应的代码接口:根据预设的接口定义服务对所述生产项目进行接口定义,得到所述生产项目对应的代码接口;对所述生产项目进行接口覆盖率检测,得到所述生产项目对应的接口覆盖率,若所述接口覆盖率小于100%,则对所述生产项目对应的代码接口进行接口补充。
可选地,根据流水线任务建立代码集成流水线,包括:获取分支匹配规则,其中,所述分支匹配规则通过所述代码仓库进行管理,并通过所述代码仓库的推送服务推送得到;根据所述分支匹配规则构建一个或多个流水线触发条件,并从流水线任务中确定各所述流水线触发条件对应的分支任务,其中,所述分支任务包括至少一部分所述流水线任务;根据所述流水线触发条件和所述分支任务确定代码集成流水线,其中,若满足任一流水线触发条件,则运行所述流水线触发条件对应的分支任务。
可选地,所述方法还包括:获取当前客户端以及所述当前客户端对应的身份标签,其中,所述身份标签包括开发人员标签和管理人员标签中的至少一种;若所述当前客户端具有开发人员标签,则通过所述当前客户端对平台数据进行数据管理,其中,所述平台数据包括所述代码仓库、所述制品库、所述容器环境池、所述代码模板集合、所述扫描规则集合和所述目标版本类型中的至少一种;若所述当前客户端具有管理人员标签,则获取所述代码集成流水线中各所述流水线任务对应的任务运行结果,根据所述运行结果和所述平台数据生成展示页面,将所述展示页面展示在所述当前客户端。
可选地,所述方法还包括:根据所述当前客户端对所述代码仓库进行权限查询,得到所述当前客户端对应的代码仓库权限,其中,所述代码仓库权限包括开发权限和管理权限;若所述当前客户端具有开发权限,则确定所述当前客户端具有触发所述代码集成流水线运行的权限;若所述当前客户端具有管理权限,则确定所述当前客户端具有管理所述代码集成流水线的权限。
本发明公开了一种集成流水线建立系统,包括:获取模块,用于获取目标语言类型、目标版本类型、代码模板集合和容器环境池,其中,所述代码模板集合包括多个代码语言类型对应的预设集成模板,所述容器环境池包括多个预设容器化环境;第一确定模块,用于根据所述目标语言类型从所述代码模板集合进行数据匹配,得到所述目标语言类型对应的目标集成模板,根据所述目标集成模板确定代码编译任务,所述代码编译任务用于根据所述目标集成模板对源代码进行编译,得到编译产物,其中,所述源代码通过对预设的代码仓库进行代码拉取得到;第二确定模块,用于根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,根据所述目标环境生成项目部署任务,所述项目部署任务用于将所述编译产物对应的生产项目部署在所述目标环境中;建立模块,用于根据流水线任务建立代码集成流水线,其中,所述流水线任务包括所述代码编译任务和所述项目部署任务。
本发明公开了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
本发明的有益效果:
通过获取目标语言类型、目标版本类型、代码模板集合和容器环境池,根据目标语言类型匹配得到的目标集成模板确定代码编译任务,根据目标版本类型选择得到的目标环境生成项目部署任务,进而根据包括代码编译任务和项目部署任务的流水线任务建立代码集成流水线。这样,相较于人工建立集成模板和部署环境,通过目标语言类型确定代码编译任务、通过软件版本信息确定项目部署任务,简化了集成模板和部署环境的确定方法,从而实现代码集成流水线的自动建立,提高代码集成流水线的生成效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例中一个代码集成流水线的结构示意图;
图2是本发明实施例中一个集成流水线建立方法的流程示意图;
图3是本发明实施例中一个集成流水线建立方法的流程示意图;
图4是本发明实施例中一个集成流水线建立系统的结构示意图;
图5是本发明实施例中一个电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
首先需要说明的是,代码集成流水线基于持续集成自动化平台进行运行,其采用Pipeline Script(综合解决方案脚本)格式,包括持续集成步骤和持续交付步骤,每个步骤都包括若干任务,任一任务执行失败,都将中止代码集成流水线的执行。
持续集成自动化平台包括配置中心和流水线UI页面,流水线UI页面基于jenkins(一种基于Java开发的持续集成工具)建立。
结合图1所示,本公开实施例提供了一种代码集成流水线,依次通过代码模块101、持续集成模块102、编译模块103、环境模块104、自动化测试模块105、展示模块106来实现代码集成流水线,其中,代码模块用于存储源代码,通过开发人员进行管理;持续集成模块用于对源代码进行集成,编译模块用于将集成后的源代码进行,两者通过代码集成人员进行管理;环境模块用于建立用于部署代码的环境,通过环境管理人员进行管理;自动化测试模块用于对代码进行测试,通过测试人员进行管理;展示模块用于向管理人员和质检人员展示代码集成流水线。
这样,导致代码集成流水线的每个模块都需要不同人员进行管理,同时,代码存在多种代码语言类型,例如java(一门面向对象的编程语言)、c++、android(一种自由及开放源代码的操作系统)、javaScript(java脚本)、Python等,不同语言对应不同环境和不同人员,增加集成流水线建立和实施的复杂难度,使得代码集成流水线的建立和实施效率很低,无法满足DevOps等数字化企业软件的轻便快捷理念,兼容性较差。
结合图2所示,本公开实施例提供了一种集成流水线建立方法,包括:
步骤S201,获取目标语言类型、目标版本类型、代码模板集合和容器环境池;
其中,代码模板集合包括多个代码语言类型对应的预设集成模板;
其中,容器环境池包括多个预设容器化环境;
步骤S202,根据目标语言类型从代码模板集合进行数据匹配,得到目标语言类型对应的目标集成模板,根据目标集成模板确定代码编译任务;
其中,代码编译任务用于根据目标集成模板对源代码进行编译,得到编译产物;
其中,源代码通过对预设的代码仓库进行代码拉取得到;
步骤S203,根据目标版本类型从容器环境池中进行环境选择,得到目标版本类型对应的目标环境,根据目标环境生成项目部署任务;
其中,项目部署任务用于将编译产物对应的生产项目部署在目标环境中;
步骤S204,根据流水线任务建立代码集成流水线;
其中,流水线任务包括代码编译任务和项目部署任务。
采用本公开实施例提供了一种集成流水线建立方法,通过获取目标语言类型、目标版本类型、代码模板集合和容器环境池,根据目标语言类型匹配得到的目标集成模板确定代码编译任务,根据目标版本类型选择得到的目标环境生成项目部署任务,进而根据包括代码编译任务和项目部署任务的流水线任务建立代码集成流水线。这样,相较于人工建立集成模板和部署环境,通过目标语言类型确定代码编译任务、通过软件版本信息确定项目部署任务,简化了集成模板和部署环境的确定方法,从而实现代码集成流水线的自动建立,提高代码集成流水线的生成效率。
在一些实施例中,代码语言类型包括代码语言中的至少一部分。
在一些实施例中,预设集成模板通过Pipeline Script建立,预设集成模板中的参数通过仓库地址、源代码和持续集成自动化平台的数据中的一部分进行填充,简化对预设集成模板中参数的填充,减少了重复性工作。
可选地,根据流水线任务建立代码集成流水线之前,该方法还包括以下至少一种:获取代码仓库的仓库地址,根据目标语言类型和仓库地址确定代码拉取任务,将代码拉取任务加入流水线任务,其中,代码拉取任务用于根据目标语言类型对预设的代码仓库进行代码拉取,得到目标语言类型对应的源代码;根据目标语言类型从预设的扫描规则集合进行数据匹配,得到目标语言类型对应的目标扫描规则,根据目标扫描规则确定代码质量扫描任务,将代码质量扫描任务加入流水线任务,其中,代码质量扫描任务用于根据目标扫描规则对编译产物进行代码质量测试,若测试结果满足预设的代码质量要求,则执行接口测试任务;生成接口测试任务,将接口测试任务加入流水线任务,其中,接口测试任务包括确定编译产物对应的代码接口,并对代码接口进行接口测试,得到编译产物对应的接口测试结果,若接口测试结果满足预设的接口测试要求,则执行版本管理任务;根据预设的制品库确定版本管理任务,将版本管理任务加入流水线任务,其中,版本管理任务包括将编译产物作为生产项目,并上传至制品库。
在一些实施例中,代码质量扫描任务采用SonarQube(一种可持续检测的源代码工具)程序源码质量度量工具,测试结果取决于从该工具中选择的判断规则。
在一些实施例中,代码质量扫描任务还用于根据目标扫描规则对源代码进行代码质量测试。
可选地,接口测试结果包括接口覆盖率、接口数据通过率等中的一种或多种,通过设置各接口测试结果对应的阈值确定接口测试要求。
可选地,版本管理任务包括将编译代码后生成的产物部署在目标环境中。
可选地,根据目标版本类型从容器环境池中进行环境选择,得到目标版本类型对应的目标环境,包括:目标版本类型包括开发版本和正式版本;若项目版本信息包括开发版本,则根据开发版本从预设的容器环境池中进行环境选择,得到开发版本对应的测试环境,将测试环境确定为目标环境,其中,测试环境用于模拟生产项目的功能开发和服务运行;若项目版本信息包括正式版本,则根据正式版本从容器环境池中进行环境选择,得到正式版本对应的正式环境,将正式环境确定为目标环境,其中,正式环境包括预生产环境和/或生产环境,预生产环境用于模拟生产项目的真实运行,生产环境用于模拟生产项目的版本更迭。
这样,通过容器环境池管理目标版本信息对应的目标环境,减少建立测试环境、部署环境、开发环境、编译环境的时间,从而提高建立代码集成流水线的效率。
可选地,容器环境池包括多个环境类型的容器化环境,其中,环境类型包括gradle(一个项目自动化构建开源工具)、maven(项目对象模型)、cmake(跨平台的安装/编译工具)、Node.js(一种JavaScript运行环境)中的至少一部分。
可选地,接口测试任务通过以下方式确定生产项目对应的代码接口:根据预设的接口定义服务对生产项目进行接口定义,得到生产项目对应的代码接口;对生产项目进行接口覆盖率检测,得到生产项目对应的接口覆盖率,若接口覆盖率小于100%,则对生产项目对应的代码接口进行接口补充。
这样,通过两种代码接口确定方法确定生产项目对应的代码接口,以满足代码集成中对新接口的单元测试要求,简化了接口测试任务的生成,提高生成效率。
在一些实施例中,通过python(一种计算机编程语言)中的swagger对生产项目进行接口定义,以提取生产项目对应的所有代码接口,其中,swagger是一个规范且完整的框架,用于生成、描述、调用和可视化风格的服务,其目标是定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。
在一些实施例中,通过定时抽查来发现不满足100%接口覆盖率的生产项目,提醒用户对生产项目对应的代码接口进行接口补充,以确定生产项目对应的代码接口。
可选地,根据流水线任务建立代码集成流水线,包括:获取分支匹配规则,其中,分支匹配规则通过代码仓库进行管理,并通过代码仓库的推送服务推送得到;根据分支匹配规则构建一个或多个流水线触发条件,并从流水线任务中确定各流水线触发条件对应的分支任务,其中,分支任务包括至少一部分流水线任务;根据流水线触发条件和分支任务确定代码集成流水线,其中,若满足任一流水线触发条件,则运行流水线触发条件对应的分支任务。
这样,通过代码仓库的推送服务推送得到分支匹配规则,通过代码仓库管理分支匹配规则,相较于专门人员管理分支匹配规则,能够将代码集成流水线中的分支匹配规则与代码仓库一起进行集中管理,降低建立代码集成流水线的复杂程度,从而提高代码集成流水线的建立效率,同时,还能减少配置项,降低错误概率。
在一些实施例中,分支匹配规则通过代码仓库的webhook推送得到,其中,webhook具有消息推送能力,通过一个生成的URL(uniform resource locator,统一资源定位系统)向客户端推送指定数据。
在一些实施例中,流水线触发条件包括第一触发条件和第二触发条件,第一触发条件包括代码仓库中存在新提交的代码,第二触发条件包括部署新的目标版本类型,执行持续集成步骤,在持续集成步骤完成后,执行持续交付步骤。
可选地,该方法还包括:获取当前客户端以及当前客户端对应的身份标签,其中,身份标签包括开发人员标签和管理人员标签中的至少一种;若当前客户端具有开发人员标签,则通过当前客户端对平台数据进行数据管理,其中,平台数据包括代码仓库、制品库、容器环境池、代码模板集合、扫描规则集合和目标版本类型中的至少一种;若当前客户端具有管理人员标签,则获取代码集成流水线中各流水线任务对应的任务运行结果,根据运行结果和平台数据生成展示页面,将展示页面展示在当前客户端。
可选地,若当前客户端具有开发人员标签,则可触发流水线、部署测试环境、查看执行数据;若当前客户端具有管理人员标签,则通过当前客户端对平台数据进行数据管理,其中,平台数据包括代码仓库、制品库、容器环境池、代码模板集合、扫描规则集合和目标版本类型中的至少一种。
可选地,若当前客户端具有代码仓库某项目管理人员标签,可更改该项目流水线集成模板;若当前客户端具有代码仓库某项目开发人员标签,则仅能获取代码集成流水线中各流水线任务对应的任务运行结果,根据运行结果和平台数据生成展示页面,将展示页面展示在当前客户端。
这样,代码仓库、制品库、容器环境池、代码模板集合、扫描规则集合和目标版本类型均由开发团队的开发人员进行维护,减少代码集成流水线的参与人员,降低代码集成流水线的复杂程度,不仅提高了代码集成流水线的生成效率,而且保证代码集成流水线生成的一致性,提高代码的集成质量。同时,将展示页面发送给管理人员进行查看,便于管理人员或质量验收人员了解代码开发情况,快速定位CI/CD流水线失败的相关环节,并能统计接口、代码的测试情况,提高纠错效率。
在一些实施例中,身份标签包括开发人员标签、环境部署人员标签、管理人员标签、质量验收人员标签、平台人员等中的一种或多种。
在一些实施例中,代码集成流水线的任一任务失败则会中止运行代码集成流水线,通过展示页面查看失败原因,提高纠错效率。
可选地,该方法还包括:根据当前客户端对代码仓库进行权限查询,得到当前客户端对应的代码仓库权限,其中,代码仓库权限包括开发权限和管理权限;若当前客户端具有开发权限,则确定当前客户端具有触发代码集成流水线运行的权限;若当前客户端具有管理权限,则确定当前客户端具有管理代码集成流水线的权限。
可选地,若当前客户端具有开发权限,则确定当前客户端具有触发代码集成流水线运行的权限,部署测试环境的权限;若当前客户端具有管理权限,则确定当前客户端具有管理代码集成流水线的权限,部署所有环境的权限
这样,通过代码仓库权限确定代码集成流水线的权限,使得代码仓库权限和流水线权限相同,不需要人工设置代码集成流水线的权限,提高了代码集成流水线的建立效率。
结合图3所示,本公开实施例提供了一种集成流水线建立系统,包括:
步骤S301,获取代码仓库、目标语言类型、制品库和目标版本类型;
其中,代码仓库、目标语言类型、制品库和目标版本类型均通过开发人员提供;
步骤S302,根据代码仓库确定代码拉取任务;
其中,代码拉取任务用于根据目标语言类型对预设的代码仓库进行代码拉取,得到目标语言类型对应的源代码;
步骤S303,从代码仓库拉取流水线触发条件;
步骤S304,根据目标语言类型匹配得到目标集成模板,根据目标集成模板确定代码编译任务;
其中,代码编译任务用于根据目标集成模板对源代码进行编译,得到编译产物;
步骤S305,根据目标语言类型匹配得到目标扫描规则,根据目标扫描规则确定代码质量扫描任务;
其中,根据目标扫描规则对编译产物进行代码质量测试,若测试结果满足预设的代码质量要求,则执行接口测试任务;
步骤S306,生成接口测试任务;
其中,接口测试任务包括确定编译产物对应的代码接口,并对代码接口进行接口测试,得到编译产物对应的接口测试结果,若接口测试结果满足预设的接口测试要求,则执行版本管理任务;
步骤S307,根据制品库确定版本管理任务;
其中,版本管理任务包括将编译产物作为生产项目,并上传至制品库;
步骤S308,根据目标版本类型选择目标环境,根据目标环境生成项目部署任务;
其中,项目部署任务用于将编译产物对应的生产项目部署在目标环境中;
步骤S309,建立代码集成流水线。
采用本公开实施例提供了一种集成流水线建立方法,通过获取目标语言类型、目标版本类型、代码模板集合和容器环境池,根据目标语言类型匹配得到的目标集成模板确定代码编译任务,根据目标版本类型选择得到的目标环境生成项目部署任务,进而根据包括代码编译任务和项目部署任务的流水线任务建立代码集成流水线,具有以下优点:
1、相较于人工建立集成模板和部署环境,通过目标语言类型确定代码编译任务、通过软件版本信息确定项目部署任务,简化了集成模板和部署环境的确定方法,从而实现代码集成流水线的自动建立,提高代码集成流水线的生成效率;
2、通过容器环境池管理目标版本信息对应的目标环境,减少建立测试环境、部署环境、开发环境、编译环境的时间,从而提高建立代码集成流水线的效率;
3、通过两种代码接口确定方法确定生产项目对应的代码接口,以满足代码集成中对新接口的单元测试要求,简化了接口测试任务的生成,提高生成效率;
4、通过代码仓库的推送服务推送得到分支匹配规则,通过代码仓库管理分支匹配规则,相较于专门人员管理分支匹配规则,能够将代码集成流水线中的分支匹配规则与代码仓库一起进行集中管理,降低建立代码集成流水线的复杂程度,从而提高代码集成流水线的建立效率,同时,还能减少配置项,降低错误概率;
5、代码仓库、制品库、容器环境池、代码模板集合、扫描规则集合和目标版本类型均由开发团队的开发人员进行维护,减少代码集成流水线的参与人员,降低代码集成流水线的复杂程度,不仅提高了代码集成流水线的生成效率,而且保证代码集成流水线生成的一致性,提高代码的集成质量;
7、将展示页面发送给管理人员进行查看,便于管理人员或质量验收人员了解代码开发情况,快速定位CI/CD流水线失败的相关环节,并能统计接口、代码的测试情况,提高纠错效率;
8、通过代码仓库权限确定代码集成流水线的权限,使得代码仓库权限和流水线权限相同,不需要人工设置代码集成流水线的权限,提高了代码集成流水线的建立效率。
结合图4所示,本公开实施例提供了一种集成流水线建立系统,包括获取模块401、第一确定模块402、第二确定模块403和建立模块404。获取模块401用于获取目标语言类型、目标版本类型、代码模板集合和容器环境池,其中,代码模板集合包括多个代码语言类型对应的预设集成模板,容器环境池包括多个预设容器化环境;第一确定模块402用于根据目标语言类型从代码模板集合进行数据匹配,得到目标语言类型对应的目标集成模板,根据目标集成模板确定代码编译任务,代码编译任务用于根据目标集成模板对源代码进行编译,得到编译产物,其中,源代码通过对预设的代码仓库进行代码拉取得到;第二确定模块403用于根据目标版本类型从容器环境池中进行环境选择,得到目标版本类型对应的目标环境,根据目标环境生成项目部署任务,项目部署任务用于将编译产物对应的生产项目部署在目标环境中;建立模块404用于根据流水线任务建立代码集成流水线,其中,流水线任务包括代码编译任务和项目部署任务。
采用本公开实施例提供了一种集成流水线建立系统,通过获取目标语言类型、目标版本类型、代码模板集合和容器环境池,根据目标语言类型匹配得到的目标集成模板确定代码编译任务,根据目标版本类型选择得到的目标环境生成项目部署任务,进而根据包括代码编译任务和项目部署任务的流水线任务建立代码集成流水线。这样,相较于人工建立集成模板和部署环境,通过目标语言类型确定代码编译任务、通过软件版本信息确定项目部署任务,简化了集成模板和部署环境的确定方法,从而实现代码集成流水线的自动建立,提高代码集成流水线的生成效率。
图5示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
本公开实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、图形处理器(Graphics Processing Unit,简称GPU),网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种集成流水线建立方法,其特征在于,包括:
获取目标语言类型、目标版本类型、代码模板集合和容器环境池,其中,所述代码模板集合包括多个代码语言类型对应的预设集成模板,所述容器环境池包括多个预设容器化环境;
根据所述目标语言类型从所述代码模板集合进行数据匹配,得到所述目标语言类型对应的目标集成模板,根据所述目标集成模板确定代码编译任务,所述代码编译任务用于根据所述目标集成模板对源代码进行编译,得到编译产物,其中,所述源代码通过对预设的代码仓库进行代码拉取得到;
根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,根据所述目标环境生成项目部署任务,所述项目部署任务用于将所述编译产物对应的生产项目部署在所述目标环境中;
根据流水线任务建立代码集成流水线,其中,所述流水线任务包括所述代码编译任务和所述项目部署任务。
2.根据权利要求1所述的方法,其特征在于,根据流水线任务建立代码集成流水线之前,所述方法还包括以下至少一种:
获取所述代码仓库的仓库地址,根据所述目标语言类型和所述仓库地址确定代码拉取任务,将所述代码拉取任务加入所述流水线任务,其中,所述代码拉取任务用于根据所述目标语言类型对预设的代码仓库进行代码拉取,得到所述目标语言类型对应的源代码;
根据所述目标语言类型从预设的扫描规则集合进行数据匹配,得到所述目标语言类型对应的目标扫描规则,根据所述目标扫描规则确定代码质量扫描任务,将所述代码质量扫描任务加入所述流水线任务,其中,所述代码质量扫描任务用于根据所述目标扫描规则对所述编译产物进行代码质量测试,若测试结果满足预设的代码质量要求,则执行接口测试任务;
生成接口测试任务,将所述接口测试任务加入所述流水线任务,其中,所述接口测试任务包括确定所述编译产物对应的代码接口,并对所述代码接口进行接口测试,得到所述编译产物对应的接口测试结果,若所述接口测试结果满足预设的接口测试要求,则执行版本管理任务;
根据预设的制品库确定版本管理任务,将所述版本管理任务加入所述流水线任务,其中,所述版本管理任务包括将所述编译产物作为生产项目,并上传至所述制品库。
3.根据权利要求2所述的方法,其特征在于,根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,包括:
所述目标版本类型包括开发版本和正式版本;
若所述项目版本信息包括开发版本,则根据所述开发版本从预设的容器环境池中进行环境选择,得到所述开发版本对应的测试环境,将所述测试环境确定为目标环境,其中,所述测试环境用于模拟所述生产项目的功能开发和服务运行;
若所述项目版本信息包括正式版本,则根据所述正式版本从所述容器环境池中进行环境选择,得到所述正式版本对应的正式环境,将所述正式环境确定为目标环境,其中,所述正式环境包括预生产环境和/或生产环境,所述预生产环境用于模拟所述生产项目的真实运行,所述生产环境用于模拟所述生产项目的版本更迭。
4.根据权利要求2所述的方法,其特征在于,接口测试任务通过以下方式确定所述生产项目对应的代码接口:
根据预设的接口定义服务对所述生产项目进行接口定义,得到所述生产项目对应的代码接口;
对所述生产项目进行接口覆盖率检测,得到所述生产项目对应的接口覆盖率,若所述接口覆盖率小于100%,则对所述生产项目对应的代码接口进行接口补充。
5.根据权利要求2所述的方法,其特征在于,根据流水线任务建立代码集成流水线,包括:
获取分支匹配规则,其中,所述分支匹配规则通过所述代码仓库进行管理,并通过所述代码仓库的推送服务推送得到;
根据所述分支匹配规则构建一个或多个流水线触发条件,并从流水线任务中确定各所述流水线触发条件对应的分支任务,其中,所述分支任务包括至少一部分所述流水线任务;
根据所述流水线触发条件和所述分支任务确定代码集成流水线,其中,若满足任一流水线触发条件,则运行所述流水线触发条件对应的分支任务。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述方法还包括:
获取当前客户端以及所述当前客户端对应的身份标签,其中,所述身份标签包括开发人员标签和管理人员标签中的至少一种;
若所述当前客户端具有开发人员标签,则通过所述当前客户端对平台数据进行数据管理,其中,所述平台数据包括所述代码仓库、所述制品库、所述容器环境池、所述代码模板集合、所述扫描规则集合和所述目标版本类型中的至少一种;
若所述当前客户端具有管理人员标签,则获取所述代码集成流水线中各所述流水线任务对应的任务运行结果,根据所述运行结果和所述平台数据生成展示页面,将所述展示页面展示在所述当前客户端。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述当前客户端对所述代码仓库进行权限查询,得到所述当前客户端对应的代码仓库权限,其中,所述代码仓库权限包括开发权限和管理权限;
若所述当前客户端具有开发权限,则确定所述当前客户端具有触发所述代码集成流水线运行的权限;
若所述当前客户端具有管理权限,则确定所述当前客户端具有管理所述代码集成流水线的权限。
8.一种集成流水线建立系统,其特征在于,包括:
获取模块,用于获取目标语言类型、目标版本类型、代码模板集合和容器环境池,其中,所述代码模板集合包括多个代码语言类型对应的预设集成模板,所述容器环境池包括多个预设容器化环境;
第一确定模块,用于根据所述目标语言类型从所述代码模板集合进行数据匹配,得到所述目标语言类型对应的目标集成模板,根据所述目标集成模板确定代码编译任务,所述代码编译任务用于根据所述目标集成模板对源代码进行编译,得到编译产物,其中,所述源代码通过对预设的代码仓库进行代码拉取得到;
第二确定模块,用于根据所述目标版本类型从所述容器环境池中进行环境选择,得到所述目标版本类型对应的目标环境,根据所述目标环境生成项目部署任务,所述项目部署任务用于将所述编译产物对应的生产项目部署在所述目标环境中;
建立模块,用于根据流水线任务建立代码集成流水线,其中,所述流水线任务包括所述代码编译任务和所述项目部署任务。
9.一种电子设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:
所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714129.3A CN115098069A (zh) | 2022-06-22 | 2022-06-22 | 集成流水线建立方法、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714129.3A CN115098069A (zh) | 2022-06-22 | 2022-06-22 | 集成流水线建立方法、系统、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098069A true CN115098069A (zh) | 2022-09-23 |
Family
ID=83293221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210714129.3A Pending CN115098069A (zh) | 2022-06-22 | 2022-06-22 | 集成流水线建立方法、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098069A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116360800A (zh) * | 2023-05-29 | 2023-06-30 | 天翼云科技有限公司 | 一种代码分支环境的部署方法、装置及电子设备 |
-
2022
- 2022-06-22 CN CN202210714129.3A patent/CN115098069A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116360800A (zh) * | 2023-05-29 | 2023-06-30 | 天翼云科技有限公司 | 一种代码分支环境的部署方法、装置及电子设备 |
CN116360800B (zh) * | 2023-05-29 | 2023-10-13 | 天翼云科技有限公司 | 一种代码分支环境的部署方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572249B2 (en) | Software kit release management | |
US10127141B2 (en) | Electronic technology resource evaluation system | |
US11733975B1 (en) | System and method for migrating legacy software to a system common architecture | |
US11392485B2 (en) | Auto test generator | |
CN102681835A (zh) | 代码克隆通知以及体系结构改变可视化 | |
CN112558555A (zh) | 维护和调试 | |
CN105791385A (zh) | 用于控制两个或多个远程会话的方法和系统 | |
Khalajzadeh et al. | Survey and analysis of current end-user data analytics tool support | |
US20210256434A1 (en) | Artificial intelligence based system and method for dynamic goal planning | |
CN114461269A (zh) | 软件开发发布管理方法、装置、设备及存储介质 | |
CN115098069A (zh) | 集成流水线建立方法、系统、电子设备及可读存储介质 | |
Vasyliuk et al. | Construction Features of the Industrial Environment Control System. | |
CN113535567B (zh) | 软件测试方法、装置、设备和介质 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
Alizadehsani et al. | Modern integrated development environment (ides) | |
US20220197607A1 (en) | System and method for developing user interface applications | |
US11544179B2 (en) | Source traceability-based impact analysis | |
Dhungana et al. | Supporting the evolution of product line architectures with variability model fragments | |
Pastrana-Pardo et al. | Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities | |
Mendoza et al. | Detecting architectural issues during the continuous integration pipeline | |
Savić et al. | Extending the SEMAT Kernel with the TDD practice | |
US8572567B2 (en) | Specifying and processing composed patterns | |
Yoshida et al. | Clone evolution and management | |
Denewiler et al. | Best practices for autonomous vehicle configuration management | |
CN113656022B (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 |