CN116301931A - 软件包的部署方法及装置 - Google Patents
软件包的部署方法及装置 Download PDFInfo
- Publication number
- CN116301931A CN116301931A CN202211649404.4A CN202211649404A CN116301931A CN 116301931 A CN116301931 A CN 116301931A CN 202211649404 A CN202211649404 A CN 202211649404A CN 116301931 A CN116301931 A CN 116301931A
- Authority
- CN
- China
- Prior art keywords
- deployment
- software package
- information
- gitcomit
- configuration information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 239000012467 final product Substances 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及软件部署技术领域,提供一种软件包的部署方法及装置。所述方法包括:获取当前软件代码中最后一次提交的gitcommit信息;对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。本申请实施例提供的软件包的部署方法,能够提高软件包的部署准确性。
Description
技术领域
本申请涉及软件部署技术领域,具体涉及一种软件包的部署方法及装置。
背景技术
在软件开发过程中,软件包的构建部署是软件研发流程中不可缺少的一个环节。相关技术中,软件包的部署,通常是由软件研发人员在代码管理平台通过git命令提交代码后,再打开软件构建平台,选择代码地址及版本进行软件包构建;构建成功后,再打开软件发布平台,从大量的软件包中选择构建好的软件包及部署的机器进行部署。然而,由于不同的软件包可能有不同的部署需求,若部署选择出错,会导致构建部署的异常,使得软件包的运行程序在出现问题时,排查困难。
发明内容
本申请旨在至少解决相关技术中存在的技术问题之一。为此,本申请提出一种软件包的部署方法,能够提高软件包的部署准确性。
本申请还提出一种软件包的部署装置。
本申请还提出一种电子设备。
本申请还提出一种计算机可读存储介质。
根据本申请第一方面实施例的软件包的部署方法,包括:
获取当前软件代码中最后一次提交的gitcommit信息;
对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
本申请实施例提供的软件包的部署方法,通过从当前当前软件代码最后一次提交的gitcommit信息中,获取部署配置信息后,根据从gitcommit信息中获取到的部署配置信息,来获取与部署配置信息对应的软件包部署策略,以根据该软件包部署策略对目标软件包进行部署,从而利用gitcommit信息,来准确识别用户的软件包部署意图,以获取准确地部署策略对目标软件包进行部署,避免部署选择出错,进而减少了软件包部署异常的可能性,提高软件包的部署准确性。
根据本申请的一个实施例,对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息,包括:
对所述gitcommit信息通过空格符号进行分割,获取gitcommit信息列表;
对所述gitcommit信息列表进行解析,获取所述gitcommit信息中的部署配置信息。
根据本申请的一个实施例,根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,包括:
确定所述部署配置信息为编译部署,获取对所述目标软件包进行下载的第一软件包部署策略。
根据本申请的一个实施例,根据所述软件包部署策略,对目标软件包进行部署,包括:
根据所述第一软件包部署策略,生成可独立运行的第一文件包;
从所述第一文件包中,获取数据量不小于预设数据量的至少一个第一目标文件,以根据各所述第一目标文件确定为所述目标软件包;
下载所述目标软件包,并在所述目标软件包下载完成后,通过java-jar程序部署包,启动所述目标软件包。
根据本申请的一个实施例,在下载所述目标软件包之前,还包括:
从程序部署服务器中下载所述java-jar程序部署包。
根据本申请的一个实施例,根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,包括:
确定所述部署配置信息为编译,获取对所述目标软件包进行上传的第二软件包部署策略。
根据本申请的一个实施例,根据所述软件包部署策略,对目标软件包进行部署,包括:
根据所述第二软件包部署策略,生成可独立运行的第二文件包;
将所述第二文件包上传至目标平台。
根据本申请第二方面实施例的软件包的部署装置,包括:
信息获取模块,用于获取当前软件代码中最后一次提交的gitcommit信息;
配置获取模块,用于对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
软件部署模块,用于根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
根据本申请第三方面实施例的电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述计算机程序时实现上述任一实施例所述的软件包的部署方法。
根据本申请第四方面实施例的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的软件包的部署方法。
根据本申请第五方面实施例的计算机程序产品,包括:所述计算机程序被处理器执行时实现如上述任一实施例所述的软件包的部署方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过从当前当前软件代码最后一次提交的gitcommit信息中,获取部署配置信息后,根据从gitcommit信息中获取到的部署配置信息,来获取与部署配置信息对应的软件包部署策略,以根据该软件包部署策略对目标软件包进行部署,从而利用gitcommit信息,来准确识别用户的软件包部署意图,以获取准确地部署策略对目标软件包进行部署,避免部署选择出错,进而减少了软件包部署异常的可能性,提高软件包的部署准确性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的软件包的部署方法的流程示意图;
图2是本申请实施例中对图1的软件包的部署方法中部署配置信息的获取做进一步细化的流程示意图;
图3是本申请实施例中对图1的软件包的部署方法中软件包的部署做进一步细化的流程示意图;
图4是本申请实施例中对图1的软件包的部署方法中软件包的部署做进一步细化的流程示意图;
图5是本申请实施例提供的软件包的部署装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面,将通过几个具体的实施例对本申请实施例提供的软件包的部署方法及装置进行详细介绍和说明。
在一实施例中,提供了一种软件包的部署方法,该方法应用于终端设备,用于进行软件包的部署。其中,终端设备可以是用户终端或服务器,用户终端可以是台式终端或便携式终端,如台式电脑、笔记本电脑等,服务器可以是独立的服务器或者是多个服务器组成的服务器集群来实现,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能采样点设备等基础云计算服务的云服务器。
如图1所示,本实施例提供的一种软件包的部署方法包括:
步骤101,获取当前软件代码中最后一次提交的gitcommit信息;
步骤102,对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
步骤103,根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
通过从当前当前软件代码最后一次提交的gitcommit信息中,获取部署配置信息后,根据从gitcommit信息中获取到的部署配置信息,来获取与部署配置信息对应的软件包部署策略,以根据该软件包部署策略对目标软件包进行部署,从而利用gitcommit信息,来准确识别用户的软件包部署意图,以获取准确地部署策略对目标软件包进行部署,避免部署选择出错,进而减少了软件包部署异常的可能性,提高软件包的部署准确性。
在一实施例中,服务器通过git log命令,获取用户通过git命令提交的软件代码,并对获取得到的当前软件代码进行实时监测。若检测到用户通过git命令提交的当前软件代码中,存在gitcommit信息,则获取当前软件代码中最后一次提交的gitcommit信息。其中,gitcommit信息用于将暂存区里的改动内容提交到本地仓库中,语法为“git commit-m[message]”,“[message]”可以是一些备注信息。
在获取到最后一次提交的gitcommit信息后,对该gitcommit信息进行解析,以获取gitcommit信息中的部署配置信息。而为使对gitcommit信息的解析更为准确,在一实施例中,如图2所示,对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息,包括:
步骤201,对所述gitcommit信息通过空格符号进行分割,获取gitcommit信息列表;
步骤202,对所述gitcommit信息列表进行解析,获取所述gitcommit信息中的部署配置信息。
考虑到在gitcommit信息中,开发人员通常是将在gitcommit信息中增加的编译部署配置,通过空格进行信息间的区分,因此在一实施例中,在获取到最后一次提交的gitcommit信息后,可使用split(“”)函数对gitcommit信息通过空格符号进行分割,获取gitcommit的信息列表gitCommitList。
在获取到信息列表gitCommitList后,即可对信息列表gitCommitList进行解析。
其中,解析得到的gitCommitList[0]为当前的提交人,表示的信息为[提交人邮箱地址]。
解析得到的gitCommitList[1]为部署配置信息。其中,gitCommitList[1]可以是bd、b和其他配置信息,bd表示编译后部署,b表示编译,其他配置信息则表示不做任何操作,不编译也不部署。
解析得到的gitCommitList[2]为当前软件代码变动的日志信息。
在解析得到gitCommitList[1]后,即可根据gitCommitList[1]中的部署配置信息,来从记录有各部署配置信息与各部署策略的映射记录表中,获取与该gitCommitList[1]对应的部署策略作为软件包部署策略。
在一实施例中,当gitCommitList[1]为bd时,表示部署配置信息为编译部署,此时则获取对目标软件包进行下载的第一软件包部署策略,以根据第一软件包部署策略,对目标软件包进行相应的部署操作。
具体的,如图3所示,根据所述软件包部署策略,对目标软件包进行部署,包括:
步骤301,根据所述第一软件包部署策略,生成可独立运行的第一文件包;
步骤302,从所述第一文件包中,获取数据量不小于预设数据量的至少一个第一目标文件,以根据各所述第一目标文件确定为所述目标软件包;
步骤303,下载所述目标软件包,并在所述目标软件包下载完成后,通过java-jar程序部署包,启动所述目标软件包。
在一实施例中,当软件包部署策略为与编译部署对应的第一软件包部署策略时,根据第一软件包部署策略,执行mvn cleanpackage-Dmaven.test.skip=rue,将项目源码构建成可以独立运行的jar包或者war包,此时得到的jar包或者war包即为第一文件包。
然后,从用于保存第一文件包的目录target文件夹中,遍历查询该target文件夹中的所有jar/war文件,并从中筛选出数据量不小于预设数据量的至少一个第一目标文件,并将各第一目标文件组合为项目的最终产物包,即目标软件包。
其中,预设数据量可以是数据量最大的第一目标文件的数据量,即此时筛选出的第一目标文件即为最大的文件,并将该文件为项目的最终产物包,即目标软件包。
在获取到目标软件包后,可将该目标软件包通过sfp命令上传到指定的构建产物管理平台,上传成功后返回程序部署包下载地址。服务器在接收到该程序部署包的下载地址后,通过paramiko远程连接程序部署服务器,在程序部署服务器执行程序部署包下载指令,以从程序部署服务器中下载java-jar程序部署包。
程序部署包下载完成后,下载目标软件包,然后通过ps命令查询服务器上已经在运行的服务。若服务器上存在运行的服务,则将该运行的服务当pid,再通过kill-9pid结束掉当前的正在运行的java程序,然后通过java-jar程序部署包,启动目标软件包;若服务器上不存在运行的服务,则直接通过java-jar程序部署包,启动目标软件包的程序服务。在目标软件包启动成功后,结束第一软件包部署策略。
在一实施例中,当gitCommitList[1]为b时,表示部署配置信息为编译,此时则获取对目标软件包进行上传的第二软件包部署策略,以根据第二软件包部署策略,对目标软件包进行相应的部署操作。
具体的,如图4所示,根据所述软件包部署策略,对目标软件包进行部署,包括:
步骤401,根据所述第二软件包部署策略,生成可独立运行的第二文件包;
步骤402,将所述第二文件包上传至目标平台。
在一实施例中,当软件包部署策略为与编译对应的第二软件包部署策略时,执行mvn cleanpackage-Dmaven.test.skip=rue.将项目源码构建成可以独立运行的jar包或者war包,此时得到的jar包或者war包即为第二文件包。
在构建第二文件包后,从target文件夹中提取该第二文件包,并通过sfp命令上传到指定的构建产物管理平台.上传成功后结束第二软件包部署策略。
在一实施例中,当部署配置信息不是bd,也不是b,即软件包部署策略即不是第一软件包部署策略,也不是第二软件包部署策略,则直接结束对目标软件包的部署操作。
下面对本申请提供的软件包的部署装置进行描述,下文描述的软件包的部署装置与上文描述的软件包的部署方法可相互对应参照。
在一实施例中,如图5所示,提供了一种软件包的部署装置,包括:
信息获取模块210,用于获取当前软件代码中最后一次提交的gitcommit信息;
配置获取模块220,用于对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
软件部署模块230,用于根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
通过从当前当前软件代码最后一次提交的gitcommit信息中,获取部署配置信息后,根据从gitcommit信息中获取到的部署配置信息,来获取与部署配置信息对应的软件包部署策略,以根据该软件包部署策略对目标软件包进行部署,从而利用gitcommit信息,来准确识别用户的软件包部署意图,以获取准确地部署策略对目标软件包进行部署,避免部署选择出错,进而减少了软件包部署异常的可能性,提高软件包的部署准确性。
在一实施例中,信息获取模块210通过git log命令,获取用户通过git命令提交的软件代码,并对获取得到的当前软件代码进行实时监测。若检测到用户通过git命令提交的当前软件代码中,存在gitcommit信息,则获取当前软件代码中最后一次提交的gitcommit信息。其中,gitcommit信息用于将暂存区里的改动内容提交到本地仓库中,语法为“gitcommit-m[message]”,“[message]”可以是一些备注信息。
在一实施例中,配置获取模块220具体用于:
对所述gitcommit信息通过空格符号进行分割,获取gitcommit信息列表;
对所述gitcommit信息列表进行解析,获取所述gitcommit信息中的部署配置信息。
考虑到在gitcommit信息中,开发人员通常是将在gitcommit信息中增加的编译部署配置,通过空格进行信息间的区分,因此在一实施例中,在获取到最后一次提交的gitcommit信息后,可使用split(“”)函数对gitcommit信息通过空格符号进行分割,获取gitcommit的信息列表gitCommitList。
在获取到信息列表gitCommitList后,即可对信息列表gitCommitList进行解析。
其中,解析得到的gitCommitList[0]为当前的提交人,表示的信息为[提交人邮箱地址]。
解析得到的gitCommitList[1]为部署配置信息。其中,gitCommitList[1]可以是bd、b和其他配置信息,bd表示编译后部署,b表示编译,其他配置信息则表示不做任何操作,不编译也不部署。
解析得到的gitCommitList[2]为当前软件代码变动的日志信息。
在解析得到gitCommitList[1]后,即可根据gitCommitList[1]中的部署配置信息,来从记录有各部署配置信息与各部署策略的映射记录表中,获取与该gitCommitList[1]对应的部署策略作为软件包部署策略。
在一实施例中,软件部署模块230具体用于:
确定所述部署配置信息为编译部署,获取对所述目标软件包进行下载的第一软件包部署策略。
在一实施例中,软件部署模块230具体用于:
根据所述第一软件包部署策略,生成可独立运行的第一文件包;
从所述第一文件包中,获取数据量不小于预设数据量的至少一个第一目标文件,以根据各所述第一目标文件确定为所述目标软件包;
下载所述目标软件包,并在所述目标软件包下载完成后,通过java-jar程序部署包,启动所述目标软件包。
在一实施例中,软件部署模块230还用于:在下载所述目标软件包之前,从程序部署服务器中下载所述java-jar程序部署包。
在一实施例中,当gitCommitList[1]为bd时,表示部署配置信息为编译部署,此时软件部署模块230则用于获取对目标软件包进行下载的第一软件包部署策略,以根据第一软件包部署策略,对目标软件包进行相应的部署操作。
当软件包部署策略为与编译部署对应的第一软件包部署策略时,根据第一软件包部署策略,执行mvn cleanpackage-Dmaven.test.skip=rue,将项目源码构建成可以独立运行的jar包或者war包,此时得到的jar包或者war包即为第一文件包。
然后,从用于保存第一文件包的目录target文件夹中,遍历查询该target文件夹中的所有jar/war文件,并从中筛选出数据量不小于预设数据量的至少一个第一目标文件,并将各第一目标文件组合为项目的最终产物包,即目标软件包。
其中,预设数据量可以是数据量最大的第一目标文件的数据量,即此时筛选出的第一目标文件即为最大的文件,并将该文件为项目的最终产物包,即目标软件包。
在获取到目标软件包后,可将该目标软件包通过sfp命令上传到指定的构建产物管理平台,上传成功后返回程序部署包下载地址。服务器在接收到该程序部署包的下载地址后,通过paramiko远程连接程序部署服务器,在程序部署服务器执行程序部署包下载指令,以从程序部署服务器中下载java-jar程序部署包。
程序部署包下载完成后,下载目标软件包,然后通过ps命令查询服务器上已经在运行的服务。若服务器上存在运行的服务,则将该运行的服务当pid,再通过kill-9pid结束掉当前的正在运行的java程序,然后通过java-jar程序部署包,启动目标软件包;若服务器上不存在运行的服务,则直接通过java-jar程序部署包,启动目标软件包的程序服务。在目标软件包启动成功后,结束第一软件包部署策略。
在一实施例中,软件部署模块230具体用于:
确定所述部署配置信息为编译,获取对所述目标软件包进行上传的第二软件包部署策略。
在一实施例中,软件部署模块230具体用于:
根据所述第二软件包部署策略,生成可独立运行的第二文件包;
将所述第二文件包上传至目标平台。
在一实施例中,当gitCommitList[1]为b时,表示部署配置信息为编译,此时则获取对目标软件包进行上传的第二软件包部署策略,以根据第二软件包部署策略,对目标软件包进行相应的部署操作。
具体的,当软件包部署策略为与编译对应的第二软件包部署策略时,执行mvncleanpackage-Dmaven.test.skip=rue.将项目源码构建成可以独立运行的jar包或者war包,此时得到的jar包或者war包即为第二文件包。
在构建第二文件包后,从target文件夹中提取该第二文件包,并通过sfp命令上传到指定的构建产物管理平台.上传成功后结束第二软件包部署策略。
在一实施例中,软件部署模块230还用于:
当部署配置信息不是bd,也不是b,即软件包部署策略即不是第一软件包部署策略,也不是第二软件包部署策略,则直接结束对目标软件包的部署操作。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)810、通信接口(Communication Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的计算机程序,以执行软件包的部署方法,例如包括:
获取当前软件代码中最后一次提交的gitcommit信息;
对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例还提供一种存储介质,存储介质包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的软件包的部署方法,例如包括:
获取当前软件代码中最后一次提交的gitcommit信息;
对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
另一方面,本申请实施例还提供一种处理器可读存储介质,处理器可读存储介质存储有计算机程序,计算机程序用于使处理器执行上述各实施例提供的方法,例如包括:
获取当前软件代码中最后一次提交的gitcommit信息;
对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种软件包的部署方法,其特征在于,包括:
获取当前软件代码中最后一次提交的gitcommit信息;
对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
2.根据权利要求1所述的软件包的部署方法,其特征在于,对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息,包括:
对所述gitcommit信息通过空格符号进行分割,获取gitcommit信息列表;
对所述gitcommit信息列表进行解析,获取所述gitcommit信息中的部署配置信息。
3.根据权利要求1所述的软件包的部署方法,其特征在于,根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,包括:
确定所述部署配置信息为编译部署,获取对所述目标软件包进行下载的第一软件包部署策略。
4.根据权利要求3所述的软件包的部署方法,其特征在于,根据所述软件包部署策略,对目标软件包进行部署,包括:
根据所述第一软件包部署策略,生成可独立运行的第一文件包;
从所述第一文件包中,获取数据量不小于预设数据量的至少一个第一目标文件,以根据各所述第一目标文件确定为所述目标软件包;
下载所述目标软件包,并在所述目标软件包下载完成后,通过java-jar程序部署包,启动所述目标软件包。
5.根据权利要求4所述的软件包的部署方法,其特征在于,在下载所述目标软件包之前,还包括:
从程序部署服务器中下载所述java-jar程序部署包。
6.根据权利要求1或3所述的软件包的部署方法,其特征在于,根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,包括:
确定所述部署配置信息为编译,获取对所述目标软件包进行上传的第二软件包部署策略。
7.根据权利要求5所述的软件包的部署方法,其特征在于,根据所述软件包部署策略,对目标软件包进行部署,包括:
根据所述第二软件包部署策略,生成可独立运行的第二文件包;
将所述第二文件包上传至目标平台。
8.一种软件包的部署装置,其特征在于,包括:
信息获取模块,用于获取当前软件代码中最后一次提交的gitcommit信息;
配置获取模块,用于对所述gitcommit信息进行解析,获取所述gitcommit信息中的部署配置信息;
软件部署模块,用于根据所述部署配置信息,获取与所述部署配置信息对应的软件包部署策略,以根据所述软件包部署策略,对目标软件包进行部署。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的软件包的部署方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的软件包的部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649404.4A CN116301931A (zh) | 2022-12-21 | 2022-12-21 | 软件包的部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649404.4A CN116301931A (zh) | 2022-12-21 | 2022-12-21 | 软件包的部署方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116301931A true CN116301931A (zh) | 2023-06-23 |
Family
ID=86833012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211649404.4A Pending CN116301931A (zh) | 2022-12-21 | 2022-12-21 | 软件包的部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301931A (zh) |
-
2022
- 2022-12-21 CN CN202211649404.4A patent/CN116301931A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN106815135B (zh) | 漏洞检测方法及装置 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN109908585B (zh) | 一种文件处理方法及***、计算设备及存储介质 | |
CN107632901A (zh) | 一种应用程序运行异常的自修复方法及装置 | |
CN113835713B (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
JP2010134643A (ja) | テストケースの選択方法及び選択システム | |
CN113687858B (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN111078553B (zh) | 数据开发任务测试方法、装置、计算机设备和存储介质 | |
CN113032245A (zh) | 错误定位识别的测试方法、装置、计算机设备及存储介质 | |
CN109471799B (zh) | 一种需求环境的部署方法、装置、存储介质及终端 | |
CN117056115B (zh) | 应用程序的修复方法和装置、存储介质及电子设备 | |
CN112732285A (zh) | 适用于云计算linux操作***的升级方法、装置及电子设备 | |
CN110727456A (zh) | 应用程序补丁包的下载方法、装置、设备及*** | |
CN116775086A (zh) | 一种安卓设备的分区升级方法及相关装置 | |
CN113672337B (zh) | 一种应用迁移方法、装置、设备及计算机可读存储介质 | |
CN111338644A (zh) | 任务脚本部署方法及*** | |
CN114500348B (zh) | 一种cdn网关测试方法及*** | |
CN116301931A (zh) | 软件包的部署方法及装置 | |
CN115525545A (zh) | 一种基于Docker的自动化测试方法、***、设备及介质 | |
CN114330278A (zh) | 一种判断返回数据一致性的方法及设备 | |
WO2022214200A1 (en) | Method and network element for pre-upgrade use case validation |
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 |