CN116755756A - 软件交付方法、装置、电子设备和存储介质 - Google Patents

软件交付方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116755756A
CN116755756A CN202310542858.XA CN202310542858A CN116755756A CN 116755756 A CN116755756 A CN 116755756A CN 202310542858 A CN202310542858 A CN 202310542858A CN 116755756 A CN116755756 A CN 116755756A
Authority
CN
China
Prior art keywords
change
stage
development
target
research
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
Application number
CN202310542858.XA
Other languages
English (en)
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202310542858.XA priority Critical patent/CN116755756A/zh
Publication of CN116755756A publication Critical patent/CN116755756A/zh
Pending legal-status Critical Current

Links

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/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Abstract

本申请公开了一种软件交付方法、装置、电子设备和存储介质。其中,该方法包括:创建与目标应用的研发任务对应的各个变更,所述各个变更与所述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对所述特性分支代码进行处理,获取完成所述目标研发流程的变更对应的交付程序;其中,所述特性分支代码包括所述变更对应的初始程序代码;将获取到的交付程序发布上线,直至所述各个变更均完成交付。本申请实施例可以解决相关技术中无法实现软件持续交付且交付效率较低的技术问题。

Description

软件交付方法、装置、电子设备和存储介质
技术领域
本申请涉及软件开发技术领域,具体涉及一种软件交付方法、装置、电子设备和存储介质。
背景技术
在软件开发过程中,软件交付是指开发者进行一个新功能或新应用的开发,到这个功能或应用被使用在生产环境的过程。传统的软件交付方式采用版本制,采用版本制的交付过程中,开发、测试、运维各角色的沟通协调成本较高,软件交付周期长,软件交付效率低,且无法实现持续交付和随时发布。而采用基于流水线等工具的自由交付模式,其研发流程中每个阶段中的流水线较为分散,难以对各流水线有效管控,且该自由交付模式难以追溯各流水线对应的功能需求,软件交付效率较低。
发明内容
鉴于上述问题,本申请提供一种软件交付方法、装置、电子设备和存储介质,以至少解决相关技术中无法实现软件持续交付且交付效率较低的技术问题。
根据本申请实施例的第一方面,提供了一种软件交付方法,包括:创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;将获取到的交付程序发布上线,直至上述各个变更均完成交付。
根据本申请实施例的第二方面,提供了一种软件交付装置,包括:创建单元,用于创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取处理单元,用于获取各变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;交付单元,用于将获取到的交付程序发布上线,直至上述变更集的所有变更完成交付。
根据本申请实施例的第三方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述第一方面的软件交付方法。
根据本申请实施例的第四方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述第一方面的软件交付方法。
在本申请实施例中,采用了将创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对包括上述变更对应的初始程序代码的特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;持续将获取到的交付程序发布上线,直至上述各个变更均完成交付的方法;通过创建与研发任务对应的各变更,不仅能对研发流程中每个阶段中的流水线进行统一管控,还能追溯各流水线对应的功能需求。通过获取完成上述目标研发流程的变更对应的交付程序,并持续将获取到的交付程序发布上线,不仅能够实现软件的持续交付,还能够缩短软件交付的周期,提高软件交付效率。
附图说明
通过阅读对下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在全部附图中,用相同的附图标号表示相同的部件。在附图中:
图1是根据本申请实施例的一种可选的软件交付方法的应用环境的示意图;
图2是根据本申请实施例的一种可选的软件交付方法的流程示意图;
图3是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图4是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图5是根据本申请实施例的又一种可选的软件交付方法的流程示意图;
图6是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图7是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图8是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图9是根据本申请实施例的一种可选的软件交付的界面展示示意图;
图10是根据本申请实施例的另一种可选的软件交付的界面展示示意图;
图11是根据本申请实施例的另一种可选的软件交付的界面展示示意图;
图12是根据本申请实施例的又一种可选的软件交付的界面展示示意图;
图13是根据本申请实施例的另一种可选的软件交付的界面展示示意图;
图14是根据本申请实施例的另一种可选的软件交付的界面展示示意图;
图15是根据本申请实施例的另一种可选的软件交付方法的流程示意图;
图16是本申请实施例提供的一种软件交付装置的结构示意图;
图17为是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可选地,根据本申请实施例的一个方面,提供了一种软件交付方法,作为一种可选的实施方式,上述软件交付方法可以但不限于应用于如图1所示的应用环境中。该应用环境可以包括但不限于:与用户进行人机交互的终端设备102、网络110、服务器112。终端设备102中运行有软件交付应用客户端。上述终端设备102中包括显示器108、处理器106和存储器104。显示器108用于呈现目标资源的访问入口。处理器106用于接收用户创建应用的请求。存储器104用于存储应用对应的各变更。此外,服务器112中包括数据库114及处理引擎116,数据库114用于存储各个变更对应的特性分支代码以及完成上述目标研发流程的变更对应的交付程序。处理引擎116用于创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;将获取到的交付程序发布上线,直至上述各个变更均完成交付。
具体过程如下步骤:假设如图1所示终端设备102中运行有软件交付应用客户端,如步骤S102-S104,终端设备102接收用户发送的应用创建请求,根据该应用创建请求发送应用创建指令至服务器112。服务器112执行步骤S106-S110,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;发送上述各变更的处理状态至终端设备102。终端设备102执行步骤S112,展示各变更在研发阶段的各阶段的处理状态。服务器112执行步骤S114,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
在一个或多个实施例中,本申请上述软件交付方法可以应用于图2所示的应用环境中。如图2所示,用户202与用户设备204之间可以进行人机交互。用户设备204中包含有存储器206和处理器208。本实施例中用户设备204可以但不限于参考执行上述终端设备102所执行的操作,获取到的交付程序发布上线,直至上述各个变更均完成交付。
可选地,上述终端设备102和用户设备204包括但不限于为手机、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、台式电脑、智能电视等。本申请实施例中的软件交付应用客户端包括但不限于为视频客户端、即时通信客户端、浏览器客户端等提供软件功能,利用本申请的软件交付方法来与用户进行交互,并接收用户的输入信息等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器112包括云服务器,该云服务器包括但不限于为私有云服务器或公有云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
在软件开发过程中,软件交付是指开发者进行一个新功能或新应用的开发,到这个功能或应用被使用在生产环境的过程。传统的软件交付方式采用版本制,采用版本制的交付过程中,开发、测试、运维各角色的沟通协调成本较高,软件交付周期长,软件交付效率低,且无法实现持续交付和随时发布。而采用基于流水线等工具的自由交付模式,其研发流程中每个阶段中的流水线较为分散,难以对各流水线有效管控,且该自由交付模式难以追溯各流水线对应的功能需求,软件交付效率较低。
为了解决上述技术问题,作为一种可选地实施方式,如图3所示,本申请实施例提供了一种软件交付方法,包括如下步骤:
S302,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应。
具体地,在本申请实施例中的变更包括在软件交付过程中的一次工程交付活动,用于追踪代码、开发、测试、发布整个过程,这里一个变更对应一个代码分支上的开发内容或配置的改变。变更中可以包含一个或者多个不同类型的变更内容,本申请中的变更内容类型包括代码变更。例如目标应用为图书管理系统,该管理系统的研发任务的各功能需求分别为实现借书功能、实现图书归还功能以及计费功能,创建与图书管理系统的研发任务对应的各个变更包括:实现借书功能对应的变更A1,实现图书归还功能对应的变更A2,计费功能对应变更为B1。在一示例中,目标应用的研发任务为对计费功能模块进行更新时,创建与图书管理系统的研发任务对应的各个变更包括:计费功能更新对应的变更B2。
S304,获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码。
具体地,本申请实施例中的,每个变更被创建后,各变更对应的特性分支代码包括实现该变更对应需求功能的初始程序代码,该初始程序代码包括从代码仓库中拉取的程序代码。这里的目标研发流程包括但不限于为开发阶段、测试阶段、预发阶段、生产阶段和修补程序阶段中的至少一个阶段。根据上述各个阶段对变更对应的特性分支代码进行处理,实时完成上述目标研发流程的变更对应的交付程序。
S306,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
具体地,在本申请实施例中,依次将将获取到的交付程序发布上线,例如目标应用图书管理系统的研发任务对应的各个变更包括:实现借书功能对应的变更A1,实现图书归还功能对应的变更A2,计费功能对应变更为B1。第一时刻获取到变更B1对应的交付程序,将B1对应的交付程序进行发布上线。在第一时刻之后的第二时刻获取到变更A1和A2对应的交付程序,继续将A1和A2对应的交付程序进行发布上线,直至完所有变更{A1,A2,B1}完成交付。
在本申请实施例中,采用了将创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对包括上述变更对应的初始程序代码的特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;持续将获取到的交付程序发布上线,直至上述各个变更均完成交付的方法;通过创建与研发任务对应的各变更,不仅能对研发流程中每个阶段中的流水线进行统一管控,还能追溯各流水线对应的功能需求。通过获取完成上述目标研发流程的变更对应的交付程序,并持续将获取到的交付程序发布上线,不仅能够实现软件的持续交付,还能够缩短软件交付的周期,提高软件交付效率。
在一个或多个实施例中,作为一种可选地实施方式,如图4所示,本申请实施例提供了一种软件交付方法,包括如下步骤:
S402,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应。
S404,获取各个变更对应的特性分支代码,根据上述目标研发流程中包含的各阶段处理流程,对上述各个变更进行逐流程处理;
S406,将满足上述各阶段处理流程的预设评判规则的变更对应的程序,确定为上述交付程序,上述预设评判规则包括变更满足当前阶段处理流程的评判条件,以及进入下一阶段处理流程的变更准入规则。
具体地,在本申请实施例中,如图9所示,假设目标研发流程包括开发阶段、测试阶段、生产阶段和hotfix(修补程序)测试阶段,hotfix发布阶段。以开发阶段为例,开发阶段的预设评判规则包括变更元数据符合当前阶段处理流程的评判条件:1,单测覆盖率(单元测试的覆盖率)达到预设值;2,部署开发环境;3,提交测试。下一阶段(测试阶段)处理流程的变更准入规则为:单测覆盖率大于预设阈值,已经提交到测试环境。
在一示例中,根据开发阶段、测试阶段、生产阶段和hotfix(修补程序)测试阶段,hotfix发布阶段包含的各阶段处理流程,对变更A1,变更A2,变更B1进行逐流程处理后,满足上述各阶段处理流程的预设评判规则的变更为A2,将变更A2对应的程序确定为交付程序。
S408,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
上述步骤S402-S404,步骤S408在前文已经明确说明,在此不再赘述。
作为一种可选地实施方式,如图5所示,本申请实施例还提供了一种软件交付方法,包括如下步骤:
S502,获取用户选定的研发流程模板,上述研发流程模板中包括开发阶段、测试阶段、生产阶段和修补程序阶段中的至少一个阶段,以及各阶段的流水线包含的处理节点;
S504,根据上述研发流程模板确定上述目标研发流程。
具体地,在本申请实施例中,如图9所示,当前软件交付系统中包括企业管理员创建的多个研发流程模板,每个模板中包括固定的研发流程,目标应用(应用A)的应用管理员选定的研发流程模板为模板B,在应用A的研发过程中根据模板B中的各阶段的流水线来实现应用A的持续交付。模板B包括开发阶段,测试阶段,生产阶段,hotfix测试阶段,hotfix发布阶段。开发阶段包括流水A,测试阶段包括流水B,生产阶段包括流水C,hotfix测试阶段包括流水D,hotfix发布阶段包括流水E。如图11所示,开发阶段的流水线A包括构建处理节点和部署处理节点;测试阶段的流水线B包括构建处理节点和部署处理节点,生产阶段的流水线C包括构建处理节点、人工卡点和部署处理节点;人工卡点为构建处理节点后的人工审核节点,增加人工卡点可以提升软件交付过程中安全性,提高软件交付的质量。
本申请实施例通过配置研发流程模板,可以减少软件交付过程中的参数配置流程,可以统一便捷的管理应用研发流程,提高软件交付效率。
S506,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
S508,获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;
S510,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
上述步骤S506-S510在前文已经明确说明,在此不再赘述。
作为一种可选地实施方式,如图6所示,本申请实施例还提供了一种软件交付方法,包括如下步骤:
S602,获取用户选定的研发流程模板,上述研发流程模板中包括开发阶段、测试阶段、生产阶段和修补程序阶段中的至少一个阶段,以及各阶段的流水线包含的处理节点;
S604,根据上述研发流程模板确定上述目标研发流程;
S606,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
S608,获取各个变更对应的特性分支代码,根据上述目标研发流程中包含的各阶段处理流程,对上述各个变更进行逐流程处理;
S610,将满足上述各阶段处理流程的预设评判规则的变更对应的程序,确定为上述交付程序,上述预设评判规则包括变更满足当前阶段处理流程的评判条件,以及进入下一阶段处理流程的变更准入规则。
S612,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
具体地,在本申请实施例中,例如图9所示,假设用户选择的模板为模板C,模板C包括开发阶段,测试阶段,生产阶段。模板C的开发阶段包括流水线A,测试阶段包括流水线B,生产阶段包括流水线C。假设当前的研发需求对应的变更包括:实现借书功能对应的变更A1,实现图书归还功能对应的变更A2,计费功能对应的变更B1。在开发阶段之前,通变更计算模块计算出当前待进入开发阶段的变更A1和A2。经过开发阶段处理后,只有并更A1满足计入测试阶段。变更A1经过生产阶段处理后,满足生产阶段的预设评判规则,即满足已部署生产环境且通过线上验证;然后将满足生产阶段的预设评判规则的变更A1对应的程序确定为变更A1对应的交付程序。
作为一种可选地实施方式,如图7所示,本申请实施例还提供了一种软件交付方法,包括如下步骤:
S702,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应。
S704,确定上述目标研发流程各阶段用户配置的变更集成方式,上述变更集成方式用于运行上述目标研发流程各阶段的流水线时指示将待集成分支合并至目标分支;上述目标分支为各阶段的流水线运行的固定分支;
S706,获取各个变更对应的特性分支代码,根据上述各阶段的变更集成方式,将上述特性分支代码在上述各阶段的初始代码分别合并至上述各阶段对应的目标分支对应的目标分支代码,获取完成上述目标研发流程的变更对应的交付程序。
在本申请实施例中,通常在研发流程中,每个节点运行有固定分支(发布分支)根据该固定分支进入到后续阶段,其他变更分支需要集成到该固定分支协同完成研发任务。如图11所示,在目标研发流程的各阶段,用户可以配置当前阶段的变更集成方式,变更集成方式为变更特性分支集成至发布分支的方式,上述变更集成方式包括但不限于:1,运行流水线时手动选择集成变更,自动合并至系统生成的发布分支;2,线下合并变更特性分支,运行流水线时自由选择运行分支;3,线下合并变更特性分支,运行流水线时运行固定分支。
如图10所示,用户在研发流程各阶段均选择线下合并变更特性分支,运行流水线时运行固定分支。在开发阶段将变更A1和A2对应的变更特性分支featureA1和featureA2合并到目标分支测试Test分支(将featureA1和featureA1的程序代码与测试Test分支合并),在测试阶段将合并后的测试Test分支合并至Master主干分支,在生产阶段运行合并后的主干Master分支,当满足生产阶段的评判条件后,得到包含变更A1对应的交付程序;然后将获取到的变更A1对应的交付程序发布上线。
S708,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
上述步骤S702和S708在前文已经明确说明,在此不再赘述。
作为一种可选地实施方式,如图8所示,本申请实施例还提供了一种软件交付方法,包括如下步骤:
S802,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
S804,确定上述目标研发流程各阶段用户配置的变更集成方式,上述变更集成方式用于运行上述目标研发流程各阶段的流水线时指示将待集成分支合并至目标分支;上述目标分支为各阶段的流水线运行的固定分支。
S806,获取各个变更对应的特性分支代码,根据上述各阶段的变更集成方式,分别确定上述各阶段对应的目标分支代码;
S808,获取上述特性分支代码在上述各阶段的初始代码,将上述各阶段的初始代码合并至上述各阶段对应的目标分支代码;
S810,展示各阶段合并后的上述目标分支代码的最新变更元数据。
如图10所示,用户在研发流程各阶段均选择线下合并变更特性分支的变更集成方式,运行流水线时运行固定分支。这里各个变更对应的特性分支代码,即在开发阶段变更A1和A2对应的变更特性分支featureA1和featureA2。根据上述各阶段的变更集成方式,确定开发阶段对应的目标分支代码为Dev开发分支对应的代码;测试阶段的目标分支代码为Test(测试)分支对应的代码或release分支对应的代码,生产阶段的目标分支代码为Master(主干)分支对应的代码。需要说明的是,测试阶段的目标分支代码还可以为release(发行)分支对应的代码,release分支对应的代码为经多个Test分支进行集成得到的分支。
在开发阶段将变更A1和A2对应的变更特性分支featureA1和featureA2对应的初始代码,合并到目标分支Dev开发分支对应的代码。合并后的Dev开发分支对应的代码即为下一阶段的初始代码。这里合并后的Dev开发分支对应的代码中包含变更特性分支featureA1和featureA2二者的代码。将多个Dev开发分支合并到目标分支Test分支(将featureA1和featureA1的程序代码与Test分支对应的代码进行合并),在测试阶段将合并后的Test分支合并至Master分支,在生产阶段运行合并后的Master分支,当满足生产阶段的评判条件后,得到包含变更A1对应的交付程序。如图13所示,在测试阶段,合并后的上述目标分支代码(release_123AA分支)的最新变更元数据包括变更A1和变更A2,包括实现借书功能的变更A1的特性分支featureA1对应的最新提交的程序数据(变更元数据),对应的commit(提交)标签为10dfcb712345ad11;以及实现归还图书功能的变更A2的特性分支featureA2对应的最新提交的程序数据(变更元数据),对应的commit标签为99dfcb712345ad12。需要说明的是,commit命令的作用是将暂存区里的改动代码给提交到本地的代码库。每次使用commit命令会在本地代码库生成一个预设位数的哈希值,即上述的commit标签。
S812,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
上述步骤S802-S804和S812在前文已经明确说明,在此不再赘述。
在一个或多个实施例中,上述的软件交付方法还包括:确定当前变更对应的变更集,上述变更集包括上述当前变更、以及与当前变更需协同发布的至少一个变更;
上述根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序,包括:
根据目标研发流程对上述变更集对应的各特性分支代码进行处理,获取完成上述目标研发流程的上述变更集对应的交付程序。
具体地,在本申请实施例中,例如实现借书功能对应的变更A1,实现图书归还功能对应的变更A2,计费功能对应变更为B1,当变更A1和变更A2需要在测试阶段同时进行测试时,确定变更A1对应的变更集1包括变更A1和变更A2。或者,如图10所示,当变更A1和变更B1需要需协同发布时,确定变更A1对应的变更集1包括变更A1和变更B1。此时变更集1作为一个整体来通过目标研发流程进处理,根据目标研发流程对上述变更集1对应的各特性分支代码进行处理,获取完成上述目标研发流程的上述变更集1对应的交付程序。
在一个或多个实施例中,上述的软件交付方法还包括:在第一变更为未达到第一阶段的评判条件时,在上述第一阶段移除上述变更集中的第一变更;上述第一变更为上述变更集中的任一变更,上述第一阶段为上述目标研发流程的任一阶段。
具体地,在本申请实施例中,例如变更集1包括变更A1变更、A2和变更B2,在测试阶段,变更A2未满足当前阶段的评判条件时,将该阶段移除变更集1中的变更A2。即到生成阶段的变更集1仅包括变更A1变更和变更B2。
在一个或多个实施例中,获取各个变更在上述目标研发流程中各处理节点的处理状态信息;
向上述各个变更关联的研发用户展示上述处理状态信息。
在本申请实施例中,每个研发用户均关联有一个或多个变更,如图12所示,例如用户张三的变更页面,实现借书功能的变更A1的特性分支featureA1对应的最新提交的程序数据(变更元数据)的标签为99dfcb7;如图13所示,变更A1和变更A2当前的处理节点为测试阶段的变更准入节点,变更准入卡点的状态为运行失败。如图14所示,用户张三负责的变更包括实现借书功能对应的变更A1,实现图书归还功能对应的变更A2,计费功能对应变更为B1。变更A1和变更A2对应的处理状态均为通过开发阶段,变更B1对应的处理状态为未进入开发阶段。
基于上述实施例,如图15所示,在一应用实施例中,上述软件交付方法包括如下步骤:
S1502,应用负责人通服务器创建目标应用。
S1504,应用负责人配置目标应用对应的应用代码库;
S1506,服务器返回应用负责人应用代码库完成配置的消息。
S1508,应用负责人在服务器中配置目标应用对应的应用环境。
S1510,服务器返回应用负责人应用环境完成配置的消息。
S1512,应用负责人通服务器定义目标应用的研发流程。
S1514,服务器根据定义的目标应用的研发流程,定义开发阶段、测试阶段和生成阶段。其中,定义研发流程的起始条件为创建或管理变更代码分支,定义测试或生产阶段的初始条件为关联多个变更。
S1516,服务器根据上述定义规则编排定义开发阶段、测试阶段和生成阶段。
S1518,服务器返回应用负责人完成研发流程定义的消息。
S1520,应用开发者根据研发需求在服务器上创建变更。
S1522,服务器根据为创建的变更创建变更特性分支。
S1524,服务器返回应用开发者变更以及变更对应的变更特性分支。
S1526,应用开发者向服务器提交变更特性分支对应的程序代码。
S1528,服务器触发开发阶段的条件。
S1530,服务器返回开发阶段的处理结果至应用开发者。
S1532,进入待测试阶段,;
S1534,服务器触发测试阶段的准入检查条件。
S1536,服务器返回符合测试阶段准入条件的消息至应用开发者;
S1538,测试者根据变更触发测试阶段的触发条件。
S1540,服务器执行测试阶段的各处理过程。
S1542,服务器返回测试阶段的结果至测试者。
S1544,进入待发布阶段。
S1546,服务器触发生产阶段的准入检查条件。
S1548,服务器返回符合生产阶段准入条件的消息至测试者;
S1550,测试者根据变更触发生产阶段的触发条件。
S1552,服务器执行生产阶段的各处理过程。
S1554,服务器返回生产阶段的处理结果给测试者。
本申请实施例基于统一研发流程,不仅能实现软件的持续交付,还能兼顾软件交付过程中的安全管控与效率的提升。而且通过变更串联研发需求和工程交付活动,可以完整追溯需求的全生命周期。此外研发流程由用户灵活自定义,能够满足不同用户的多个应用场景,具备普遍适用性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本申请实施例的另一个方面,还提供了一种用于实施上述软件交付方法的软件交付装置。如图16所示,该装置包括:
创建单元1602,用于创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
获取处理单元1604,用于获取各变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;
交付单元1606,用于将获取到的交付程序发布上线,直至上述各个变更均完成交付。
在本申请实施例中,采用了将创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;获取各个变更对应的特性分支代码,根据目标研发流程对包括上述变更对应的初始程序代码的特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;持续将获取到的交付程序发布上线,直至上述各个变更均完成交付的方法;通过创建与研发任务对应的各变更,不仅能对研发流程中每个阶段中的流水线进行统一管控,还能追溯各流水线对应的功能需求。通过获取完成上述目标研发流程的变更对应的交付程序,并持续将获取到的交付程序发布上线,不仅能够实现软件的持续交付,还能够缩短软件交付的周期,提高软件交付效率。
在一个或多个实施例中,上述获取处理单元1604,包括:
处理模块,用于根据上述目标研发流程中包含的各阶段处理流程,对上述各个变更进行逐流程处理;
确定模块,用于将满足上述各阶段处理流程的预设评判规则的变更对应的程序,确定为上述交付程序,上述预设评判规则包括变更满足当前阶段处理流程的评判条件,以及进入下一阶段处理流程的变更准入规则。
在一个或多个实施例中,上述软件交付装置,还包括:
第一获取单元,用于获取用户选定的研发流程模板,上述研发流程模板中包括开发阶段、测试阶段、生产阶段和修补程序阶段中的至少一个阶段,以及各阶段的流水线包含的处理节点;
第一确定单元,用于根据上述研发流程模板确定上述目标研发流程。
在一个或多个实施例中,上述软件交付装置,还包括:
第二确定单元,用于确定上述目标研发流程各阶段用户配置的变更集成方式,上述变更集成方式用于运行上述目标研发流程各阶段的流水线时指示将待集成分支合并至目标分支;上述目标分支为各阶段的流水线运行的固定分支;
上述获取处理单元1604,还包括:
合并模块,用于根据上述各阶段的变更集成方式,将上述特性分支代码在上述各阶段的初始代码分别合并至上述各阶段对应的目标分支对应的目标分支代码。
在一个或多个实施例中,上述合并模块,包括:
确定子单元,用于根据上述各阶段的变更集成方式,分别确定上述各阶段对应的目标分支代码;
获取子单元,用于获取上述特性分支代码在上述各阶段的初始代码,将上述各阶段的初始代码合并至上述各阶段对应的目标分支代码;
展示子单元,用于展示各阶段合并后的上述目标分支代码的最新变更元数据。
在一个或多个实施例中,上述软件交付装置,还包括:
第三确定单元,用于确定当前变更对应的变更集,上述变更集包括上述当前变更、以及与当前变更需协同发布的至少一个变更;
上述获取处理单元1604,还包括:
获取处理模块,用于根据目标研发流程对上述变更集对应的各特性分支代码进行处理,获取完成上述目标研发流程的上述变更集对应的交付程序。
在一个或多个实施例中,上述软件交付装置还包括:
移除单元,用于在第一变更为未达到第一阶段的评判条件时,在上述第一阶段移除上述变更集中的第一变更;上述第一变更为上述变更集中的任一变更,上述第一阶段为上述目标研发流程的任一阶段。
在一个或多个实施例中,上述软件交付装置还包括:
第二获取单元,用于获取各个变更在上述目标研发流程中各处理节点的处理状态信息;
展示单元,用于向上述各个变更关联的研发用户展示上述处理状态信息。
根据本申请实施例的又一个方面,还提供了一种用于实施上述软件交付方法的电子设备,该电子设备可以是图1所示的终端设备或服务器,该服务器包括但不限于为云服务器。本实施例以该电子设备为服务器为例来说明。如图17所示,该电子设备包括存储器1702和处理器1704,该存储器1702中存储有计算机程序,该处理器1704被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以为计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
S2,获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;
S3,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
可选地,本领域普通技术人员可以理解,图17所示的结构仅为示意,电子设备也可以是智能手机、平板电脑、掌上电脑以及移动互联网设备等终端设备。图17其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图17中所示更多或者更少的组件(如网络接口等),或者具有与图17所示不同的配置。
其中,存储器1702可用于存储软件程序以及模块,如本申请实施例中的软件交付方法和装置对应的程序指令/模块,处理器1704通过运行存储在存储器1702内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的软件交付方法。存储器1702可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1702可进一步包括相对于处理器1704远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1702具体可以但不限于用于存储各个变更对应的特性分支代码以及完成上述目标研发流程的变更对应的交付程序。
作为一种示例,如图17所示,上述存储器1702中可以但不限于包括上述软件交付装置中的创建单元1602、获取处理单元1604和交付单元1606。此外,还可以包括但不限于上述软件交付装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1706用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1706包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1706为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1708,用于显示每个变更对应的处理状态信息;和连接总线1710,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
在一个或多个实施例中,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述软件交付方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,创建与目标应用的研发任务对应的各个变更,上述各个变更与上述研发任务的各功能需求相对应;
S2,获取各个变更对应的特性分支代码,根据目标研发流程对上述特性分支代码进行处理,获取完成上述目标研发流程的变更对应的交付程序;其中,上述特性分支代码包括上述变更对应的初始程序代码;
S3,将获取到的交付程序发布上线,直至上述各个变更均完成交付。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

Claims (11)

1.一种软件交付方法,其特征在于,包括:
创建与目标应用的研发任务对应的各个变更,所述各个变更与所述研发任务的各功能需求相对应;
获取各个变更对应的特性分支代码,根据目标研发流程对所述特性分支代码进行处理,获取完成所述目标研发流程的变更对应的交付程序;其中,所述特性分支代码包括所述变更对应的初始程序代码;
将获取到的交付程序发布上线,直至所述各个变更均完成交付。
2.根据权利要求1所述的方法,其特征在于,所述根据目标研发流程对所述特性分支代码进行处理,获取完成所述目标研发流程的变更对应的交付程序,包括:
根据所述目标研发流程中包含的各阶段处理流程,对所述各个变更进行逐流程处理;
将满足所述各阶段处理流程的预设评判规则的变更对应的程序,确定为所述交付程序,所述预设评判规则包括变更满足当前阶段处理流程的评判条件,以及进入下一阶段处理流程的变更准入规则。
3.根据权利要求1或2所述的方法,其特征在于,所述创建与目标应用的研发任务对应的各个变更之前,包括:
获取用户选定的研发流程模板,所述研发流程模板中包括开发阶段、测试阶段、生产阶段和修补程序阶段中的至少一个阶段,以及各阶段的流水线包含的处理节点;
根据所述研发流程模板确定所述目标研发流程。
4.根据权利要求1所述的方法,其特征在于,所述根据目标研发流程对所述特性分支代码进行处理之前,包括:
确定所述目标研发流程各阶段用户配置的变更集成方式,所述变更集成方式用于运行所述目标研发流程各阶段的流水线时指示将待集成分支合并至目标分支;所述目标分支为各阶段的流水线运行的固定分支;
所述根据目标研发流程对所述特性分支代码进行处理,包括:
根据所述各阶段的变更集成方式,将所述特性分支代码在所述各阶段的初始代码分别合并至所述各阶段对应的目标分支对应的目标分支代码。
5.根据权利要求4所述的方法,其特征在于,所述根据所述各阶段的变更集成方式,依次将所述特性分支代码在所述各阶段的初始代码合并至所述各阶段对应的目标分支对应的目标分支代码,包括:
根据所述各阶段的变更集成方式,分别确定所述各阶段对应的目标分支代码;
获取所述特性分支代码在所述各阶段的初始代码,将所述各阶段的初始代码合并至所述各阶段对应的目标分支代码;
展示各阶段合并后的所述目标分支代码的最新变更元数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定当前变更对应的变更集,所述变更集包括所述当前变更、以及与当前变更需协同发布的至少一个变更;
所述根据目标研发流程对所述特性分支代码进行处理,获取完成所述目标研发流程的变更对应的交付程序,包括:
根据目标研发流程对所述变更集对应的各特性分支代码进行处理,获取完成所述目标研发流程的所述变更集对应的交付程序。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在第一变更为未达到第一阶段的评判条件时,在所述第一阶段移除所述变更集中的第一变更;所述第一变更为所述变更集中的任一变更,所述第一阶段为所述目标研发流程的任一阶段。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取各个变更在所述目标研发流程中各处理节点的处理状态信息;
向所述各个变更关联的研发用户展示所述处理状态信息。
9.一种软件交付装置,其特征在于,包括:
创建单元,用于创建与目标应用的研发任务对应的各个变更,所述各个变更与所述研发任务的各功能需求相对应;
获取处理单元,用于获取各变更对应的特性分支代码,根据目标研发流程对所述特性分支代码进行处理,获取完成所述目标研发流程的变更对应的交付程序;其中,所述特性分支代码包括所述变更对应的初始程序代码;
交付单元,用于将获取到的交付程序发布上线,直至所述各个变更均完成交付。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-8中任一项所述的方法。
CN202310542858.XA 2023-05-11 2023-05-11 软件交付方法、装置、电子设备和存储介质 Pending CN116755756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310542858.XA CN116755756A (zh) 2023-05-11 2023-05-11 软件交付方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310542858.XA CN116755756A (zh) 2023-05-11 2023-05-11 软件交付方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116755756A true CN116755756A (zh) 2023-09-15

Family

ID=87948612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310542858.XA Pending CN116755756A (zh) 2023-05-11 2023-05-11 软件交付方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116755756A (zh)

Similar Documents

Publication Publication Date Title
CN104067257B (zh) 自动化事件管理系统,管理事件方法及事件管理系统
CN111930521A (zh) 用于部署应用的方法、装置、电子设备及可读存储介质
CN105593835A (zh) 通过主云服务管理器管理多个二级云
WO2009099694A2 (en) Managing component programs within a service application
CN112036577B (zh) 基于数据形式的应用机器学习的方法、装置和电子设备
CN109656599A (zh) 用于客户端版本更新的方法及系统
CN111045893B (zh) 监控任务的执行方法、装置及系统、存储介质、电子装置
US10277663B1 (en) Management of asynchronous media file transmissions
CN115292026B (zh) 容器集群的管理方法、装置、设备及计算机可读存储介质
CN110535776B (zh) 网关限流方法、装置、网关、系统及存储介质
CN110659261A (zh) 一种数据挖掘模型发布方法及模型和模型服务管理方法
CN109947985A (zh) 应用于在线系统中的神经网络处理方法及装置
CN110880091A (zh) 一种微服务的流程处理方法和设备
CN110890987A (zh) 自动创建集群的方法、装置、设备和系统
CN112486491A (zh) 页面生成方法、装置、计算机设备及存储介质
CN110633120A (zh) 组态软件控件处理方法、装置、服务器、用户终端及系统
CN110661851A (zh) 数据交换方法和装置
CN109697249A (zh) 搜索目标对象以及发布对象的方法、系统以及存储介质
CN106161517B (zh) 通过云文件系统实现云存储接入的方法和装置
CN103049294A (zh) 一种网元软件升级的方法和装置
CN109104472B (zh) 区块链网络组网方法、装置、设备及计算机可读存储介质
CN104484218A (zh) 一种虚拟机名称展示的方法、装置及系统
CN116755756A (zh) 软件交付方法、装置、电子设备和存储介质
WO2014159808A1 (en) Managing and implementing web application data snapshots
CN113495723B (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