CN110908670A - 一种自动发布服务的方法及装置 - Google Patents

一种自动发布服务的方法及装置 Download PDF

Info

Publication number
CN110908670A
CN110908670A CN201911140434.0A CN201911140434A CN110908670A CN 110908670 A CN110908670 A CN 110908670A CN 201911140434 A CN201911140434 A CN 201911140434A CN 110908670 A CN110908670 A CN 110908670A
Authority
CN
China
Prior art keywords
rpm
code
server
deployment
warehouse
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
CN201911140434.0A
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.)
Huayun Data Co ltd
Original Assignee
Tianjin Huayun Software 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 Tianjin Huayun Software Co Ltd filed Critical Tianjin Huayun Software Co Ltd
Priority to CN201911140434.0A priority Critical patent/CN110908670A/zh
Publication of CN110908670A publication Critical patent/CN110908670A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

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

Abstract

本申请公开了一种自动发布服务的方法及装置,包括:获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;将所述RPM打包代码发送至RPM源仓库服务器;控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。所述自动发布服务的方法及装置,在生成新的代码后,系统能够自动对新的代码打包,并上传至RPM源仓库,便于部署服务器直接获取并自动更新,该过程能够方便快捷的实现服务安装或更新,大大提升应用部署效率。

Description

一种自动发布服务的方法及装置
技术领域
本发明涉及软件技术领域,更具体的说,是涉及一种自动发布服务的方法及装置。
背景技术
每一项应用服务在正式投入运用前,都需要经过较长时间的开发测试,以保证最终的版本能够更好的实现其对应的功能。近些年,一些软件项目规模越来越大,涉及的服务越来越多,相应服务的对接人也越来越广,这样就导致当更新某个或多个服务时,需要找到不同的人员进行工作对接,如测试人员需要从开发人员处了解应用的环境信息,然后再从对应的服务器上手动更新应用。然而这个过程需要耗费大量的时间和人力,影响工作效率。
发明内容
有鉴于此,本发明提供了一种自动发布服务的方法及装置,以实现对服务方便快捷的进行发布。
为实现上述目的,本发明提供如下技术方案:
一种自动发布服务的方法,包括:
获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;
从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;
将所述RPM打包代码发送至RPM源仓库服务器;
控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;
向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
可选的,所述获取触发消息,包括:
获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
可选的,在所述对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码前,还包括:
配置软件包描述文件。
可选的,所述向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新,包括:
向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
可选的,还包括:
验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;
和/或,
验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
一种自动发布服务的装置,包括:
消息获取模块,用于获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;
代码处理模块,用于从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;
代码发送模块,用于将所述RPM打包代码发送至RPM源仓库服务器;
更新控制模块,用于控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;
部署控制模块,用于向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
可选的,所述消息获取模块具体用于:获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
可选的,还包括:
文件配置模块,用于在所述代码处理模块对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码前,配置软件包描述文件。
可选的,所述部署控制模块具体用于:向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
可选的,还包括:
更新验证模块,用于验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;
和/或,
验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种自动发布服务的方法及装置,包括:获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;将所述RPM打包代码发送至RPM源仓库服务器;控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。所述自动发布服务的方法及装置,在生成新的代码后,系统能够自动对新的代码打包,并上传至RPM源仓库,便于部署服务器直接获取并自动更新,该过程能够方便快捷的实现服务安装或更新,大大提升应用部署效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种自动发布服务的方法流程图;
图2为本发明实施例公开的另一种自动发布服务的方法流程图;
图3为本发明实施例公开的又一种自动发布服务的方法流程图;
图4为本发明实施例公开的自动发布服务的实现架构图;
图5为本发明实施例公开的一种自动发布服务的装置的结构示意图;
图6为本发明实施例公开的另一种自动发布服务的装置的结构示意图;
图7为本发明实施例公开的又一种自动发布服务的装置的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
Jenkins:Jenkins只是一个平台,真正运作的都是插件。Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作。
GitLab:GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Webhooks:webhooks是一个api概念,是微服务api的使用范式之一,也被成为反向api,即:前端不主动发送请求,完全由后端推送。
Yum:Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例公开的一种自动发布服务的方法流程图,参见图1所示,自动发布服务的方法可以包括:
步骤101:获取触发消息,所述触发消息用于指示代码仓库接收到新的代码。
本实施例中,所述自动发布服务的方法的执行主体可以是任意具有代码打包功能的处理装置,例如,可以是jenkins。所述触发消息用于触发消息通知jenkins代码仓库接收到的新的代码,后续jenkins可以依据所述触发消息,依据预设的处理规则,对代码仓库新获取的代码进行对应处理,以实现服务的自动发布。
步骤102:从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码。
Jenkins在接收到所述触发消息后,可自动执行从所述代码仓库拉取最新的代码,对获取的代码进行打包处理,然后控制更新或部署与所述代码对应的服务的相关工作。
本实施例中,jenkins对获取的代码进行打包处理,可以是执行RPM(Red-HatPackage Manager,软件包管理器)打包。
步骤103:将所述RPM打包代码发送至RPM源仓库服务器。
将最新的代码进行RPM打包后,可以将打包好的代码发送至RPM源仓库服务器。为了整体上方便RPM打包代码的获取更新,具体实现中,可以设置一个RPM源仓库服务器,jenkins可以将RPM打包代码发送至该RPM源仓库服务器,后续其他的一些用于部署服务的服务器可以从所述RPM源仓库服务器中获取最新的代码,即所述RPM打包代码,基于获取的RPM打包代码实现服务的更新或安装。
步骤104:控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码。
在将RPM打包代码发送到所述RPM源仓库服务器后,jenkins可以给所述RPM源仓库服务器发送更新指令,控制所述RPM源仓库服务器进行代码数据的更新。
步骤105:向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
在所述RPM源仓库服务器更新代码后,jenkins可以给部署服务器发送部署指令,指示所述部署服务器某个服务有最新版本,使其去RPM源仓库服务器获取最新版本的服务数据,即所述RPM打包代码,并在获取后自动安装或更新与所述RPM打包代码对应的服务,完成服务的自动发布。
本实施例所述自动发布服务的方法,在生成新的代码后,系统能够自动对新的代码打包,并上传至RPM源仓库,便于部署服务器直接获取并自动更新,该过程能够方便快捷的实现服务安装或更新,大大提升应用部署效率。
在一个示意性的示例中,所述获取触发消息,可以包括:获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
代码仓库中可以配置有webhook功能,选择webhook功能中的push event,即推送事件,设置在代码仓库接收到新的代码时,会触发该事件,即触发向jenkins推送接收到新代码的事件消息。
图2为本发明实施例公开的另一种自动发布服务的方法流程图,如图2所示,自动发布服务的方法可以包括:
步骤201:获取触发消息,所述触发消息用于指示代码仓库接收到新的代码。
步骤202:从所述代码仓库拉取所述新的代码。
步骤203:配置软件包描述文件,并对所述新的代码以及所述软件包描述文件进行软件包管理器RPM打包,得到RPM打包代码。
RPM编译过程的核心是处理.sqec文件,.sqec文件是制作rpm软件包所必须的一个文件,即软件包描述文件。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等。
步骤204:将所述RPM打包代码发送至RPM源仓库服务器。
步骤205:控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码。
步骤206:向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
本实施例中,在将代码打包前,配置好软件包的描述文件,便于后续RPM源仓库服务器和部署服务器在获取到RPM打包代码后,能够根据软件包描述快速准确的进行相应更新和部署。
在一个示意性的示例中,所述向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新,可以包括:向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
在其他的实施例中,自动发布服务的方法还可以包括:验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;和/或,验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
图3为本发明实施例公开的又一种自动发布服务的方法流程图,参见图3所示,在一个示例中,自动发布服务的方法可以包括:
步骤301:获取触发消息,所述触发消息用于指示代码仓库接收到新的代码。
步骤302:从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码。
步骤303:将所述RPM打包代码发送至RPM源仓库服务器。
步骤304:控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码。
步骤305:验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码,若是,进入步骤306;若否,返回步骤303。
验证的过程,可以远程登录上RPM源仓库服务器,进入其目录地址,查看所述RPM打包代码是否存在。具体的,RPM打包代码有服务版本号,可以查看目录中的版本号是否为最新的版本号。如果有,即表明RPM包打包成功,且RPM源仓库服务器已被更新。
步骤306:向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
本实施例中,在控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码后,先验证RPM源仓库服务器是否已成功更新,只有在更新成功的情况下,才会向部署服务器发送部署指令,保证部署服务器能够获取到最新的代码数据进行相应的部署。
图4为本发明实施例公开的自动发布服务的实现架构图,结合图4所示,在一个具体实现中,包括以下内容:
S1:在Git(开源的分布式版本控制系统)上设置webhook,选择需要触发的事件进行自动触发构建,这里选择push event。添加webhook后,开发人员在提交对应微服务的代码时,会自动触发执行S2步骤的相关操作。
S2:Jenkins创建一个新的Job,并为其配置自动触发构建功能(到代码仓库(git)拉取最新的代码,执行rpm打包,服务更新或部署的功能),用于监控Git上微服务变更时执行相应的操作(拉取代码,打包,部署操作)。
S3:给微服务添加一个service.spec文件,在文件里配置好该服务的安装目录,权限(比如某个服务中会生成日志,需要对日志文件夹加上权限)等等。
S4、为了执行RPM打包操作,需要在jenkins的安装服务器上安装RPM打包工具。安装成功后,RPM的工作目录,在/root/rpmbuild目录下,查看各工作目录(如解压包后存放的路径、编译后存放的路径、源包所放置的路径、文档放置的路径、源码rpm包放置的路径等)是否存在,目录存在即为安装成功。
S5、Jenkins前面创建的job需要在写相应的一些shell脚本,用来执行打包命令。微服务打包成功后的rpm文件会被放到S4步骤中RPM的工作目录里。
S6、为了方便rpm包的获取更新,在一台服务器A上搭建自己的rpm私有仓库,并通过Jenkins将S5步骤中打包成功的rpm包发送到服务器A的rpm仓库中。并通过jenkins可以远程在这台服务器上执行命令,更新rpm源内容。
S7、微服务安装部署所在的服务器B,需要添加一下RPM的源仓库地址,以便在执行yum操作安装程序时,能找到微服务安装包。
S8、在S6步骤执后,通过Jenkins连接到服务器B,执行yum makecache(yummakecache将服务器上的软件包下载到本地缓存,以提高搜索、安装软件的速度)命令,将服务器A上的服务安装包更新到服务器B上,然后执行yum install(新装服务)或yum update(更新服务)命令即可。
S9、验证微服务的安装包在RPM源仓库是否更新,登录到服务器A,进入源仓库目录地址,查看服务安装包的最新版本是否已经存在。如果有,即表明rpm包打包成功,且RPM源仓库已被更新。例如最新的服务安装包的版本是1.0-122。
S10、验证微服务是否已经部署更新成功,登录微服务安装部署服务器B上,执行yum命令查看服务版本号,这里看到最新的服务版本也是1.0-122,与RPM私有源仓库是一致的,表示在服务器B上更新微服务RPM安装包成功,拿到了最新的微服务版本。在S3步骤中,在spec文件中配置了服务的安装目录,所以这里可以到服务器B上的目录中检查一下对应服务目录是否已经存在且是最新,若服务目录存在且最新,表示服务更新部署已经成功。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图5为本发明实施例公开的一种自动发布服务的装置的结构示意图,如图5所示,自动发布服务的装置50可以包括:
消息获取模块501,用于获取触发消息,所述触发消息用于指示代码仓库接收到新的代码。
本实施例中,所述自动发布服务的装置的执行主体可以是任意具有代码打包功能的处理装置,例如,可以是jenkins。所述触发消息用于触发消息通知jenkins代码仓库接收到的新的代码,后续jenkins可以依据所述触发消息,依据预设的处理规则,对代码仓库新获取的代码进行对应处理,以实现服务的自动发布。
代码处理模块502,用于从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码。
Jenkins在接收到所述触发消息后,可自动执行从所述代码仓库拉取最新的代码,对获取的代码进行打包处理,然后控制更新或部署与所述代码对应的服务的相关工作。
本实施例中,jenkins对获取的代码进行打包处理,可以是执行RPM打包。
代码发送模块503,用于将所述RPM打包代码发送至RPM源仓库服务器。
将最新的代码进行RPM打包后,可以将打包好的代码发送至RPM源仓库服务器。为了整体上方便RPM打包代码的获取更新,具体实现中,可以设置一个RPM源仓库服务器,jenkins可以将RPM打包代码发送至该RPM源仓库服务器,后续其他的一些用于部署服务的服务器可以从所述RPM源仓库服务器中获取最新的代码,即所述RPM打包代码,基于获取的RPM打包代码实现服务的更新或安装。
更新控制模块504,用于控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码。
在将RPM打包代码发送到所述RPM源仓库服务器后,jenkins可以给所述RPM源仓库服务器发送更新指令,控制所述RPM源仓库服务器进行代码数据的更新。
部署控制模块505,用于向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
在所述RPM源仓库服务器更新代码后,jenkins可以给部署服务器发送部署指令,指示所述部署服务器某个服务有最新版本,使其去RPM源仓库服务器获取最新版本的服务数据,即所述RPM打包代码,并在获取后自动安装或更新与所述RPM打包代码对应的服务,完成服务的自动发布。
本实施例所述自动发布服务的装置,在生成新的代码后,系统能够自动对新的代码打包,并上传至RPM源仓库,便于部署服务器直接获取并自动更新,该过程能够方便快捷的实现服务安装或更新,大大提升应用部署效率。
在一个示意性的示例中,所述消息获取模块具体可用于:获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
代码仓库中可以配置有webhook功能,选择webhook功能中的push event,即推送事件,设置在代码仓库接收到新的代码时,会触发该事件,即触发向jenkins推送接收到新代码的事件消息。
图6为本发明实施例公开的另一种自动发布服务的装置的结构示意图,如图6所示,自动发布服务的装置60可以包括:
消息获取模块501,用于获取触发消息,所述触发消息用于指示代码仓库接收到新的代码。
文件配置模块601,用于配置软件包描述文件。
代码处理模块502,用于从所述代码仓库拉取所述新的代码,并对所述新的代码以及所述软件包描述文件进行软件包管理器RPM打包,得到RPM打包代码。
代码发送模块503,用于将所述RPM打包代码发送至RPM源仓库服务器。
更新控制模块504,用于控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码。
部署控制模块505,用于向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
本实施例中,在将代码打包前,配置好软件包的描述文件,便于后续RPM源仓库服务器和部署服务器在获取到RPM打包代码后,能够根据软件包描述快速准确的进行相应更新和部署。
在一个示意性的示例中,所述部署控制模块具体可用于:向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
图7为本发明实施例公开的又一种自动发布服务的装置的结构示意图,如图7所示,除消息获取模块501、代码处理模块502、代码发送模块503、更新控制模块504和部署控制模块505外,自动发布服务的装置70还可以包括:更新验证模块701,用于验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;和/或,验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
验证RPM源仓库服务器是否已成功更新,可以远程登录上RPM源仓库服务器,进入其目录地址,查看所述RPM打包代码是否存在。具体的,RPM打包代码有服务版本号,可以查看目录中的版本号是否为最新的版本号。如果有,即表明RPM包打包成功,且RPM源仓库服务器已被更新。
验证部署服务器是否已成功安装或更新的过程类似于上述验证RPM源仓库服务器是否已成功更新的过程,在此不再过多介绍。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种自动发布服务的方法,其特征在于,包括:
获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;
从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;
将所述RPM打包代码发送至RPM源仓库服务器;
控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;
向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
2.根据权利要求1所述的自动发布服务的方法,其特征在于,所述获取触发消息,包括:
获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
3.根据权利要求1所述的自动发布服务的方法,其特征在于,在所述对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码前,还包括:
配置软件包描述文件。
4.根据权利要求1所述的自动发布服务的方法,其特征在于,所述向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新,包括:
向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
5.根据权利要求1所述的自动发布服务的方法,其特征在于,还包括:
验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;
和/或,
验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
6.一种自动发布服务的装置,其特征在于,包括:
消息获取模块,用于获取触发消息,所述触发消息用于指示代码仓库接收到新的代码;
代码处理模块,用于从所述代码仓库拉取所述新的代码,并对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码;
代码发送模块,用于将所述RPM打包代码发送至RPM源仓库服务器;
更新控制模块,用于控制所述RPM源仓库服务器依据所述RPM打包代码更新相关的源代码;
部署控制模块,用于向部署服务器发送部署指令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
7.根据权利要求6所述的自动发布服务的装置,其特征在于,所述消息获取模块具体用于:获取代码仓库在接收到新的代码时通过推送事件功能自动发送的触发消息。
8.根据权利要求6所述的自动发布服务的装置,其特征在于,还包括:
文件配置模块,用于在所述代码处理模块对所述新的代码进行软件包管理器RPM打包,得到RPM打包代码前,配置软件包描述文件。
9.根据权利要求8所述的自动发布服务的装置,其特征在于,所述部署控制模块具体用于:向所述部署服务器发送yum命令,以使得所述部署服务器从所述RPM源仓库服务器获取所述RPM打包代码,并完成对应的安装或更新。
10.根据权利要求6所述的自动发布服务的装置,其特征在于,还包括:
更新验证模块,用于验证所述RPM源仓库服务器是否已成功更新所述RPM打包代码;
和/或,
验证所述部署服务器是否已成功安装或更新所述RPM打包代码对应的服务。
CN201911140434.0A 2019-11-20 2019-11-20 一种自动发布服务的方法及装置 Pending CN110908670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911140434.0A CN110908670A (zh) 2019-11-20 2019-11-20 一种自动发布服务的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911140434.0A CN110908670A (zh) 2019-11-20 2019-11-20 一种自动发布服务的方法及装置

Publications (1)

Publication Number Publication Date
CN110908670A true CN110908670A (zh) 2020-03-24

Family

ID=69818384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911140434.0A Pending CN110908670A (zh) 2019-11-20 2019-11-20 一种自动发布服务的方法及装置

Country Status (1)

Country Link
CN (1) CN110908670A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581161A (zh) * 2020-04-29 2020-08-25 上海中通吉网络技术有限公司 移动端应用发布方法及系统
CN111651181A (zh) * 2020-06-17 2020-09-11 深圳市钱海网络技术有限公司 一种系统配置参数自动刷新方法及装置
CN111984231A (zh) * 2020-07-06 2020-11-24 新浪网技术(中国)有限公司 一种代码自动化上线的方法及系统
CN112433828A (zh) * 2020-10-29 2021-03-02 贵州新致普惠信息技术有限公司 基于多类型仓库事件驱动的持续集成和持续部署方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484172A (zh) * 2014-12-11 2015-04-01 上海天脉聚源文化传媒有限公司 一种文件打包的方法及装置
US20180013637A1 (en) * 2016-07-06 2018-01-11 CloudBolt Software Inc. Cloud computing resource orchestration
CN109597644A (zh) * 2018-12-05 2019-04-09 江苏风云科技服务有限公司 项目部署方法及装置
CN110427192A (zh) * 2019-08-01 2019-11-08 上海麦克风文化传媒有限公司 一种it系统持续集成和持续发布方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484172A (zh) * 2014-12-11 2015-04-01 上海天脉聚源文化传媒有限公司 一种文件打包的方法及装置
US20180013637A1 (en) * 2016-07-06 2018-01-11 CloudBolt Software Inc. Cloud computing resource orchestration
CN109597644A (zh) * 2018-12-05 2019-04-09 江苏风云科技服务有限公司 项目部署方法及装置
CN110427192A (zh) * 2019-08-01 2019-11-08 上海麦克风文化传媒有限公司 一种it系统持续集成和持续发布方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581161A (zh) * 2020-04-29 2020-08-25 上海中通吉网络技术有限公司 移动端应用发布方法及系统
CN111651181A (zh) * 2020-06-17 2020-09-11 深圳市钱海网络技术有限公司 一种系统配置参数自动刷新方法及装置
CN111651181B (zh) * 2020-06-17 2024-03-12 深圳市钱海网络技术有限公司 一种系统配置参数自动刷新方法及装置
CN111984231A (zh) * 2020-07-06 2020-11-24 新浪网技术(中国)有限公司 一种代码自动化上线的方法及系统
CN111984231B (zh) * 2020-07-06 2024-05-07 新浪技术(中国)有限公司 一种代码自动化上线的方法及系统
CN112433828A (zh) * 2020-10-29 2021-03-02 贵州新致普惠信息技术有限公司 基于多类型仓库事件驱动的持续集成和持续部署方法

Similar Documents

Publication Publication Date Title
CN110908670A (zh) 一种自动发布服务的方法及装置
US9940225B2 (en) Automated error checking system for a software application and method therefor
US10114637B1 (en) Automatically updating a shared project build platform
US11599348B2 (en) Container image building using shared resources
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US10628290B2 (en) Generating an inner cloud environment within an outer cloud environment for testing a microservice application
US10579966B1 (en) Adapting a shared project build platform to a developer plugin
CN106559438B (zh) 一种基于目标网络平台的程序上传方法和装置
US9098375B2 (en) Automatic management of software patch installation
CN108847950B (zh) 电子装置、云系统软件自动部署方法及存储介质
US20190235850A1 (en) Automated identification of deployment data for distributing discrete software deliverables
US11113050B2 (en) Application architecture generation
CN109614109B (zh) 应用部署方法、装置和系统
EP3447635A1 (en) Application architecture generation
CN110888655A (zh) 一种应用发布方法及装置
US11481245B1 (en) Program inference and execution for automated compilation, testing, and packaging of applications
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN110928780B (zh) 一种代码质量控制方法、装置、计算机设备及存储介质
WO2017185883A1 (zh) 一种动态扩展软件流程的方法和系统
CN109857444B (zh) 应用程序的更新方法、装置、电子设备和可读存储介质
CN111078265A (zh) 一种基于jenkins的web项目更新补丁生成方法
CN109726104B (zh) 移动终端的测试包生成方法、测试终端及存储介质
CN114546819A (zh) 代码处理方法、装置、电子设备及可读介质
CN113254040B (zh) 前端框架更新方法、装置、设备及存储介质
CN107220174B (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: 20220531

Address after: 230088 floor 6, Zone C, building G4, phase II, innovation industrial park, No. 2800, innovation Avenue, high tech Zone, Hefei, Anhui Province

Applicant after: Huayun Data Co.,Ltd.

Address before: 301700 room 510-6, No. 1, west side of Gaowang Road, Gaocun Town, Wuqing District, Tianjin (centralized office area)

Applicant before: Tianjin Huayun Software Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20200324

RJ01 Rejection of invention patent application after publication