CN116360817A - 一种基于git工具的代码自动部署方法及装置 - Google Patents

一种基于git工具的代码自动部署方法及装置 Download PDF

Info

Publication number
CN116360817A
CN116360817A CN202310203311.7A CN202310203311A CN116360817A CN 116360817 A CN116360817 A CN 116360817A CN 202310203311 A CN202310203311 A CN 202310203311A CN 116360817 A CN116360817 A CN 116360817A
Authority
CN
China
Prior art keywords
branch
test
code
webhook
feature
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
CN202310203311.7A
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.)
Wuhan Haleward Network Technology Co ltd
Original Assignee
Wuhan Haleward Network Technology 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 Wuhan Haleward Network Technology Co ltd filed Critical Wuhan Haleward Network Technology Co ltd
Priority to CN202310203311.7A priority Critical patent/CN116360817A/zh
Publication of CN116360817A publication Critical patent/CN116360817A/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
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于git工具的代码自动部署方法及装置,涉及项目代码更新部署领域,该方法包括基于git对项目进行管理,当开发新功能时基于master分支新建feature‑xx分支,开发对应代码,并将feature‑xx分支代码合并至develop分支;基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;测试通过后,将feature‑xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。本发明能够提高功能上线的效率。

Description

一种基于git工具的代码自动部署方法及装置
技术领域
本发明涉及项目代码更新部署领域,具体涉及一种基于git工具的代码自动部署方法及装置。
背景技术
代码部署是指将代码部署到服务器,本质上就是将代码从一个地方(如本地、gitlab仓库等)拷贝到服务器的指定目录。
对于没有专业自动化运维系统的情况而言,代码更新还是使用FTP(FileTransfer Protocol,文件传输协议)工具上传代码进行,当新开发功能对应的文件较多时,文件上传便会特别麻烦,而且容易遗漏,造成系统报错,并导致功能上线时间延长。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于git工具的代码自动部署方法及装置,能够提高功能上线的效率。
为达到以上目的,本发明提供一种基于git工具的代码自动部署方法,具体包括以下步骤:
基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;
基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;
测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
在上述技术方案的基础上,所述将feature-xx分支代码合并至develop分支,具体步骤为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
在上述技术方案的基础上,在基于webhook将develop分支代码部署至测试环境之前,还包括:
搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
在上述技术方案的基础上,所述基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体步骤包括:
访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
在上述技术方案的基础上,所述基于webhook将master分支代码更新至生产环境,具体步骤为:
访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
本发明提供一种基于git工具的代码自动部署装置,包括:
新建模块,其用于基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;
部署模块,其用于基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;
更新模块,其用于测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
在上述技术方案的基础上,所述将feature-xx分支代码合并至develop分支,具体过程为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
在上述技术方案的基础上,在基于webhook将develop分支代码部署至测试环境之前,还包括:
搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
在上述技术方案的基础上,所述基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体过程包括:
访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
在上述技术方案的基础上,所述基于webhook将master分支代码更新至生产环境,具体过程为:
访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
与现有技术相比,本发明的优点在于:通过基于git对项目进行管理,当开发新功能时新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支,然后基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,然后将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境,实现新功能快速且完整的部署到生成环境,提高功能上线的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于git工具的代码自动部署方法的流程图。
具体实施方式
本发明实施例提供一种基于git工具的代码自动部署方法,通过基于git对项目进行管理,当开发新功能时新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支,然后基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,然后将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境,实现新功能快速且完整的部署到生成环境,提高功能上线的效率。本发明实施例相应地还提供了一种基于git工具的代码自动部署装置。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。
参见图1所示,本发明实施例提供一种基于git工具的代码自动部署方法,利用项目管理git能更新最新代码的功能,结合webhook工具调用更新代码的脚本,再加上相应项目管理流程,从而实现一键上线新功能。该代码自动部署方法具体包括以下步骤:
S1:基于git(一种开源的分布式版本控制系统)对项目进行管理,当开发新功能时基于master分支新建feature-xx分支(功能分支),开发对应代码,并将feature-xx分支代码合并至develop分支(主开发分支);
本发明中,将feature-xx分支代码合并至develop分支,具体步骤为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
即将项目采用git进行管理,开发新功能时新建feature-xx分支,开发代码,在本地环境对新功能进行测试,测试通过后提交feature-xx分支,将feature-xx分支合并至develop分支。
S2:基于webhook(一种自动化部署和运维工具)将develop分支代码部署至测试环境,以对开发的新功能进行测试;
本发明中,在基于webhook将develop分支代码部署至测试环境之前,还包括:搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
本发明中,基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体步骤包括:
S201:访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
S202:对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
即通过访问webhook生成的测试环境部署链接,将develop分支代码部署至测试环境,测试新开发功能是否正常,若测试通过,则将feature-xx分支代码合并至master分支,若测试不通过,则分析原因,然后继续在本地环境中对开发的新功能进行测试,之后重复步骤S1和步骤S2。
S3:测试通过后,将feature-xx分支代码合并至master分支(git默认创建的分支),并基于webhook将master分支代码更新至生产环境。
本发明中,基于webhook将master分支代码更新至生产环境,具体步骤为:访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
通过本发明的代码自动部署方法,能够快速的部署新功能,提高效率,同时对于功能部署不会存在文件遗漏;且代码部署操作简单,相对与原FTP方案安全,不用暴露登录服务器的账号密码。
本发明实施例的基于git工具的代码自动部署方法,通过基于git对项目进行管理,当开发新功能时新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支,然后基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,然后将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境,实现新功能快速且完整的部署到生成环境,提高功能上线的效率。
在一种可能的实施方式中,本发明实施例还提供一种可读存储介质,可读存储介质位于PLC(Programmable Logic Controller,可编程逻辑控制器)控制器中,可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下所述基于git工具的代码自动部署方法的步骤:
基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;
基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;
测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例提供的一种基于git工具的代码自动部署装置,包括新建模块、部署模块和更新模块。
新建模块用于基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;部署模块用于基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;更新模块用于测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
本发明中,将feature-xx分支代码合并至develop分支,具体过程为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
本发明中,在基于webhook将develop分支代码部署至测试环境之前,还包括:搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
本发明中,基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体过程包括:
访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
本发明中,基于webhook将master分支代码更新至生产环境,具体过程为:访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
本发明实施例的基于git工具的代码自动部署装置,通过基于git对项目进行管理,当开发新功能时新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支,然后基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,然后将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境,实现新功能快速且完整的部署到生成环境,提高功能上线的效率。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

Claims (10)

1.一种基于git工具的代码自动部署方法,其特征在于,具体包括以下步骤:
基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;
基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;
测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
2.如权利要求1所述的一种基于git工具的代码自动部署方法,其特征在于,所述将feature-xx分支代码合并至develop分支,具体步骤为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
3.如权利要求1所述的一种基于git工具的代码自动部署方法,其特征在于,在基于webhook将develop分支代码部署至测试环境之前,还包括:
搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
4.如权利要求3所述的一种基于git工具的代码自动部署方法,其特征在于,所述基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体步骤包括:
访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
5.如权利要求1所述的一种基于git工具的代码自动部署方法,其特征在于,所述基于webhook将master分支代码更新至生产环境,具体步骤为:
访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
6.一种基于git工具的代码自动部署装置,其特征在于,包括:
新建模块,其用于基于git对项目进行管理,当开发新功能时基于master分支新建feature-xx分支,开发对应代码,并将feature-xx分支代码合并至develop分支;
部署模块,其用于基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试;
更新模块,其用于测试通过后,将feature-xx分支代码合并至master分支,并基于webhook将master分支代码更新至生产环境。
7.如权利要求6所述的一种基于git工具的代码自动部署装置,其特征在于,所述将feature-xx分支代码合并至develop分支,具体过程为:
在本地环境中对feature-xx分支代码对应的功能进行测试:
若测试通过,则合并feature-xx分支代码至git的develop分支;
若测试不通过,则结束。
8.如权利要求6所述的一种基于git工具的代码自动部署装置,其特征在于,在基于webhook将develop分支代码部署至测试环境之前,还包括:
搭建webhook调用,编写sh脚本,执行git拉取代码,通过webhook生成测试环境部署链接。
9.如权利要求8所述的一种基于git工具的代码自动部署装置,其特征在于,所述基于webhook将develop分支代码部署至测试环境,以对开发的新功能进行测试,具体过程包括:
访问通过webhook生成的测试环境部署链接,将develop分支代码部署至测试环境;
对开发的新功能进行测试:
若测试通过,则将feature-xx分支代码合并至master分支;
若测试不通过,则分析测试不通过原因,并继续在本地环境中对开发的新功能进行测试。
10.如权利要求6所述的一种基于git工具的代码自动部署装置,其特征在于,所述基于webhook将master分支代码更新至生产环境,具体过程为:
访问基于webhook生成的生产环境部署链接,将master分支代码更新至生产环境。
CN202310203311.7A 2023-03-03 2023-03-03 一种基于git工具的代码自动部署方法及装置 Pending CN116360817A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310203311.7A CN116360817A (zh) 2023-03-03 2023-03-03 一种基于git工具的代码自动部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310203311.7A CN116360817A (zh) 2023-03-03 2023-03-03 一种基于git工具的代码自动部署方法及装置

Publications (1)

Publication Number Publication Date
CN116360817A true CN116360817A (zh) 2023-06-30

Family

ID=86906044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310203311.7A Pending CN116360817A (zh) 2023-03-03 2023-03-03 一种基于git工具的代码自动部署方法及装置

Country Status (1)

Country Link
CN (1) CN116360817A (zh)

Similar Documents

Publication Publication Date Title
US11340870B2 (en) Software release workflow management
US7437706B2 (en) Automating the life cycle of a distributed computing application
US9092230B2 (en) Configuration of componentized software applications
CN107643984B (zh) 用于输出信息的方法和装置
CN110442371B (zh) 一种发布代码的方法、装置、介质及计算机设备
CN111666217B (zh) 用于测试代码的方法和装置
CN111695827B (zh) 业务流程的管理方法、装置、电子设备及存储介质
CN105072398B (zh) 一种设备升级方法和装置
CN115344300A (zh) 分支流水线构建方法、装置、设备及存储介质
CN112087370A (zh) 发布GitHub Issues的方法、系统、电子设备和计算机可读存储介质
CN113535141A (zh) 数据库操作代码的生成方法及装置
CN117009911B (zh) 一种目标事件的异常判定方法、装置、介质及电子设备
CN114489704A (zh) 基于策略的版本编译部署方法及装置
CN110874316B (zh) 扫描代码的方法、装置和系统
CN116360817A (zh) 一种基于git工具的代码自动部署方法及装置
CN113360156A (zh) 一种ios编译方法及相关设备
CN111338940A (zh) 代码处理方法、装置及系统
US10146529B2 (en) Monitoring rules declaration and automatic configuration of the monitoring rules
CN111858302B (zh) 小程序的测试方法、装置、电子设备及存储介质
CN114449063A (zh) 一种报文处理方法、装置及设备
CN115237743A (zh) 代码处理方法、系统、集群、介质及程序产品
CN113590179A (zh) 插件检测方法、装置、电子设备及存储介质
US11334452B1 (en) Performing remote part reseat actions
CN115495354A (zh) 一种单元测试方法、装置、系统及存储介质
US20210373876A1 (en) System and method for implementing a monitoring tool switch

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