CN113726575A - 前端项目自动化上线方法、装置、服务器和存储介质 - Google Patents

前端项目自动化上线方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN113726575A
CN113726575A CN202111014695.5A CN202111014695A CN113726575A CN 113726575 A CN113726575 A CN 113726575A CN 202111014695 A CN202111014695 A CN 202111014695A CN 113726575 A CN113726575 A CN 113726575A
Authority
CN
China
Prior art keywords
online
code file
target
temporary storage
project
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.)
Withdrawn
Application number
CN202111014695.5A
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.)
Shanghai Miaoqi Technology Co ltd
Original Assignee
Shanghai Miaoqi 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 Shanghai Miaoqi Technology Co ltd filed Critical Shanghai Miaoqi Technology Co ltd
Priority to CN202111014695.5A priority Critical patent/CN113726575A/zh
Publication of CN113726575A publication Critical patent/CN113726575A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种前端项目自动化上线方法、装置、服务器和存储介质。本申请通过预先对前端项目进行初始化配置,在获取待上线代码文件包时自动上传至预先配置的目标服务器的暂存区中并存储暂存路径;之后响应用户的上线确认操作,根据预先配置的目标路径将暂存区中的待上线代码文件包自动上传至预先配置的目标服务器的目标区中;并根据目标路径对内容分发网络进行自动刷新缓存发布上线记录,实现减少人工介入的前端项目自动化上线。本申请可以提升项目开发效率,提升项目上线的可靠性,缩短项目版本发布时间,提升用户体验。

Description

前端项目自动化上线方法、装置、服务器和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种前端项目自动化上线方法、装置、服务器和存储介质。
背景技术
前端项目开发包括创建Web页面等前端界面呈现给用户的过程。前端项目构建,是指将前端项目使用到的所有源文件模块,合并成一个或几个文件,方便html页面直接引用最终代码。目前,在前端项目开发领域,从项目测试到项目上线,项目开发人员或者项目委托方会针对项目提出不同的需求,因此,往往会出现多个项目版本。
在现有技术中,当前端项目有新代码上线或者代码更新上线时,通常以如下方式实现前端项目上线:开发人员利用Jenkins构建完成前端项目的源代码,构建完成后再通过人工手动将源代码上传至代码上线的服务器,然后手动对内容分发网络(CDN)进行刷新缓存完成上线。现有技术方案的不足之处在于:在实现前端项目上线时需要手动操作,操作繁琐,稳定性无法保证;手动上线费时费力,容易因操作不当引发错误;且没有上线记录,部署上线后出现异常时回滚至历史版本的操作复杂。
中国专利公开文献202010366362.8(公开日2020.09.15)公开了基于Git的项目版本发布方法,其基于Git分布式控制系统通过直接推送文件至目标服务器的传输方式,发布初始/更新/回滚代码文件和初始/更新/回滚配置文件,根据初始/更新/回滚部署文件通过非交互式对话方式,完成传输至目标服务器的初始/更新/回滚代码文件和初始/更新/回滚配置文件的自动安装。该方法减少了人工配置成本,缩短了项目版本发布时间;然而,该方法需针对每一项目版本发布(初始版本/更新版本/回滚版本)均构建相应的配置文件,且并未涉及服务器可以自动执行项目代码打包、刷新缓存、发布上线记录等操作的公开。
发明内容
本申请的目的在于,提供一种前端项目自动化上线方法、装置、服务器和存储介质,以解决现有技术中存在的问题,可以实现前端项目自动化上线,提升项目开发效率,并且提升项目上线的可靠性。
为实现上述目的,本申请第一实施例提供了一种前端项目自动化上线方法,适用于自动化上线平台;所述方法包括如下步骤:获取前端项目的初始化配置文件,其中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径;获取待上线代码文件包,上传至所述目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径;响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中;根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录;其中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。
在一些实施例中,所述方法进一步包括:响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
为实现上述目的,本申请第二实施例提供了一种前端项目自动化上线装置,适用于自动化上线平台;所述装置包括:获取单元,用于获取前端项目的初始化配置文件,其中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径;第一上传单元,用于获取待上线代码文件包,上传至所述目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径;第二上传单元,用于响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中;上线处理单元,用于根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录;其中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。
在一些实施例中,所述装置进一步包括:回滚处理单元,用于响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
为实现上述目的,本申请第三实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序在被处理器执行时,实现本申请前端项目自动化上线方法。
为实现上述目的,本申请第四实施例提供了一种服务器,包括存储器和处理器,所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现本申请前端项目自动化上线方法。
与现有技术相比,采用本申请实施例提供的前端项目自动化上线方案,通过预先对前端项目进行初始化配置,在获取待上线代码文件包时自动上传至预先配置的目标服务器的暂存区中并存储暂存路径;之后响应用户的上线确认操作,根据预先配置的目标路径将暂存区中的待上线代码文件包自动上传至预先配置的目标服务器的目标区中;并根据目标路径对内容分发网络进行自动刷新缓存发布上线记录,实现减少人工介入的前端项目自动化上线。通过连通Jenkins与自动化上线平台,在自动化上线平台中进行OSS上传、刷新缓存、生成上线记录、发送上线消息、回滚等功能丰富的自动化操作,可以提升项目开发效率,并且提升项目上线的可靠性,大大减少了人工配置成本,减少了运营成本,极大缩短了项目版本发布时间;解决了现有技术方案在实现前端项目上线时需要手动操作,且没有上线记录,部署上线后出现异常时回滚至历史版本的操作复杂的问题。且自动化上线平台是自主研发,用户可在界面上看到上线记录,最大化提升了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的应用场景的结构示意图;
图2为本申请实施例提供的自动化上线平台的添加项目界面的示意图;
图3为本申请实施例提供的自动化上线平台的上线记录展示界面的示意图;
图4为本申请实施例提供的前端项目自动化上线方法的流程示意图;
图5为本申请实施例提供的前端项目自动化上线装置的结构示意图;
图6为本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含一系列步骤或单元的过程、方法、系统、产品或设备,不限于清楚地列出的步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。术语“第一”、“第二”仅用于技术特征的区分。诸如“第一”、“第二”的术语和其它数字术语在本申请中使用时不暗示顺序或次序,除非上下文有明确指示。
本申请实施例中涉及的一些技术名词适用于如下的解释:
CI/CD(Continuous integration/Continuous delivery,持续集成/持续交付):是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。
Jenkins(可扩展的持续集成工具):是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins功能包括:持续的软件版本构建/测试项目;监控外部调用执行的工作。
Git(代码仓库):是软件代码的存储机构。Git中提供有分支(branch)功能,利用branch能够有效地隔离不同开发人员提交的代码;其中,主分支(master)可以派生出派生分支(develop),以便继续进行软件开发,防止开发时互相交叉造成代码混乱与混淆。Gitlab是Git的代码管理工具,Gitlab中提供有CI/CD程序,通过调用CI/CD程序,能够实现自动集成/交付。
OSS(Object Storage Service,对象存储服务):是一种安全和高可靠的云存储服务,它具有与平台无关的RESTful API接口,用户可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
CDN(Content Delivery Network,内容分发网络):是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
请参阅图1,其示出了本申请实施例中的技术方案能够适用的一种应用场景,在该应用场景中,可以包括用户设备101、自动化上线平台102、目标服务器103和内容分发网络104。
用户设备101上维护有代码仓库(Git)109和可扩展的持续集成工具(Jenkins)108。其中,用户设备103可能有一台也可能有多台,且用户设备101包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑等计算机设备。Git中提供有分支(branch)功能,利用branch能够有效地隔离不同开发人员提交的代码;其中,主分支(master)可以派生出派生分支(develop),以便继续进行软件开发,防止开发时互相交叉造成代码混乱与混淆;开发人员使用develop完成某个任务,合并到master后再删掉develop,这和直接在master上工作效果是一样的,但过程更安全。Gitlab是Git的代码管理工具,Gitlab中提供有CI/CD程序,通过调用CI/CD程序,能够实现自动集成/交付。Jenkins主要用于持续、自动地构建/测试软件项目,Jenkins与Gitlab通信连接,并通过配置实现连通,从而Jenkins可以检测到Gitlab上的代码更新。具体地,Gitlab提供一些hook(钩子)方法,使得当Gitlab上有代码更新时Jenkins可以检测到。
自动化上线平台102为自研开发的可以进行前端项目的初始化配置、待上线代码文件包上传、上线消息推送以及上线记录发布的平台,主要通过界面、接口提供项目管理、上线、回滚、查询上线记录等功能。自动化上线平台102可以为计算机设备或服务器;计算机设备包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑等,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,可以根据实际业务需求而设置。自动化上线平台102通过接口与Jenkins进行通信,通过网络分别与目标服务器103、内容分发网络104进行通信。可以理解,本申请提供的前端项目自动化上线方法应用于该自动化上线平台102,上述前端项目自动化上线方法可以以计算机程序的形式存储于自动化上线平台102中,自动化上线平台102通过执行计算机程序,实现本申请提供的前端项目自动化上线方法。
目标服务器103可以采用OSS(对象存储服务)提供存储服务,以便将内容资源(待上线代码文件包)存在OSS上。内容分发网络(CDN)104主要是使用户能够就近获取所需内容,降低网络拥塞,提高用户的访问速度。
具体地,第一用户(一般为项目开发人员)在安装有Git并做了账号配置的用户设备101上进行代码开发。该第一用户可以将开发完成后的代码文件提交到Git上,并创建将代码文件合并到master的合并请求。第二用户(一般为项目负责人)在安装有Git并做了账号配置的用户设备101上处理该合并请求,将代码文件合并到master。代码文件合并到master后,Jenkins能够自动检测到该代码文件的合并,进而自动触发代码文件打包功能,将该代码文件打包生成待上线代码文件包。具体地,Jenkins通过执行shell脚本,在脚本里去执行打包操作。
用户(项目开发人员)可以在自动化上线平台102上对前端项目进行的初始化配置,以形成初始化配置文件并进行存储。例如,配置前端项目的项目名称、前端项目所要上传的目标服务器、项目名称对应的代码文件包上传至所述目标服务器的目标路径等。自动化上线平台102可以兼容在该平台搭建完成之前已有的业务线(即前端项目)以及在该平台搭建完成之后直接在该平台新增的业务线。用户可以在自动化上线平台102上通过添加项目的方式,将各业务线添加至自动化上线平台102。用户可以在自动化上线平台102的添加项目界面对相应的业务线进行的初始化配置;添加项目界面一实施例的示意图如图2所示。由于前端可能存在多个项目,本申请可以通过添加项目、实现分项目进行自动化上线。需要说明的是,本申请配置操作,仅在业务线初次被添加至自动化上线平台102时执行,后续针对该业务线的更新、回滚均无需再进行配置操作,有效简化了上线步骤、提高上线效率。
当Jenkins通过执行shell脚本将代码文件打包生成待上线代码文件包后,shell脚本会进一步执行调用自动化上线平台102的接口上传打包后的待上线代码文件包的操作。自动化上线平台102获取该待上线代码文件包,即可上传至目标服务器103的暂存区中暂存,并向用户展示上线确认信息(例如在自动化上线平台102的显示界面展示一“上线”按钮)。当自动化上线平台102接收到用户对所展示的上线确认信息的上线确认操作(例如,接收用户对该上线按钮的点击操作),则根据预先配置的目标路径将暂存区中的待上线代码文件包上传至目标服务器103的目标区中。也即,当用户点击“上线”按钮后,自动化上线平台102将目标服务器103上暂存区中暂存的待上线代码文件包上传至该项目对应的真实路径(目标路径)对应的目标区中,完成自动化上传。然后,自动化上线平台102可以根据预先配置的目标路径以及API(Application Programming Interface,应用程序接口),通过调用API(可通过代码实现自动调用)根据目标路径对内容分发网络进行自动刷新缓存,完成自动化上线。缓存是指CDN上的缓存,刷新缓存即为将CDN相应节点的缓存删除,从而上线的前端项目可以被用户获取。
自动化上线平台102进而在其显示界面发布上线记录,用户即可在自动化上线平台102上看到对应的上线记录。其中,每个项目对应的待上线代码文件包上传至目标服务器进行暂存时,都会有一个对应的暂存目录(暂存路径),用于指示该项目对应的待上线代码文件包暂存在目标服务器的对应暂存区中(例如,暂存在相应文件夹中);每个项目对应的待上线代码文件包上传至目标服务器进行存储时,都会有一个对应的存储目录(目标路径),用于指示该项目对应的已上线代码文件包存储在目标服务器的对应目标区中(例如,存储在相应文件夹中)。
上线记录展示界面一实施例的示意图如图3所示,图示每一行即为一条上线记录。该上线记录至少包括此次上线的代码文件包的版本信息(图示“tag”栏)以及暂存路径(图示“暂存路径”栏)。其中,版本信息可以方便代码定位与回滚;暂存路径可以是根据待上线代码文件包上传的时间戳所形成的一个上传目录。在暂存路径下暂存区中暂存待上线代码文件包相当于对待上线代码文件包进行备份,通过设置暂存区,可在用户确认上线时,及时将其中的待上线代码文件包上传至真正的目标区中,还可以在需要执行回滚时,快速从暂存区中获取相应的代码文件包进行上传。该上线记录还可以显示:针对当前版本的代码文件包的可执行操作(图示“操作”栏);其中,所述可执行操作包括:回滚到当前版本或刷新缓存。该上线记录还可以包括:用于显示该版本代码文件包上线所实现的功能的上线功能信息(图示“上线功能”栏),上线状态(图示“状态”栏,状态可包括“已上线”、“已下线”、“未上线”等),该条上线记录对应的前端项目的创建人,以及该版本代码文件包的最后更新时间(图示“最后更新时间”栏);上线记录具体所展示的内容可以根据需要进行扩展或缩减。
在持续交付的过程中,可能需要对项目版本进行回滚。用户通过对目标项目的指定历史版本的上线记录中回滚到当前版本进行确认操作(例如点击),即可触发对目标项目的指定历史版本的回滚。具体地,自动化上线平台102接收用户对目标项目的指定历史版本的上线记录中回滚到当前版本的确认操作时,通过根据对应的目标路径将指定历史版本的代码文件包从其所在的暂存区中上传至目标服务器的对应目标区中,再通过调用API(可通过代码实现自动调用)根据对应的目标路径对内容分发网络进行自动刷新缓存,并发布回滚记录,完成回滚。即,本申请更新或回滚采用指定版本代码文件包全覆盖形式而非替换差异文件形式,因此自动化上线平台102不需要检测当前版本与指定版本之间的差异,可以实现准确、可靠地快速更新/回滚。其中,回滚记录至少包括此次回滚所关联的前次上线记录(即标记针对哪次上线记录执行的回滚)以及所述指定历史版本的版本信息。
图3中所示的“刷新缓存”是用于防止自动刷新失败、或者是用户在上线时忘记选择自动刷新而预留的功能;若用户已经选择了自动刷新缓存后则上线记录不会显示此操作。当自动刷新失败或者是用户在上线时忘记选择自动刷新时,用户可以通过对相应的上线记录中刷新缓存进行确认操作(例如点击),即可触发对目标项目的指定版本的刷新缓存操作。具体地,自动化上线平台102接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作,再通过调用API(响应用户手动刷新缓存的调用)根据所述目标路径对内容分发网络进行刷新缓存。
自动化上线平台102还可以提供向第三方应用程序推送上线消息的功能,使得用户可以通过第三方应用程序及时获知上线消息,以便若发现上线功能有问题,可及时进行回滚等操作。可以通过上线事件触发消息推送,由自动化上线平台102响应上线事件来执行上线消息的发送动作。例如,在用户点击“上线”按钮后,可以由平台的后端服务组件来执行上线消息的发送动作,通过webhook将自定义服务的上线消息推送至第三方应用程序(例如飞书)。自动化上线平台所推送的上线消息示例如图4所示。其中,Webhook允许订阅事件后,当事件被触发时,可以发送推送消息到webhook配置的URL,在配置webhook的时候,可以选择想要接收的事件。
当然,本申请实施例提供的技术方案的实施并不限于图1所示的应用场景中,还可用于其它可能的应用场景,对此本申请实施例并不进行限制。对于图1所示的应用场景中的各个组件所能实现的功能将在后续的方法实施例中一并进行描述。需要说明的是,本申请实施例中的经由网络或者通过网络,指的是通过网络连接;其中,网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)和广域计算机网络(Wide-Area computerNetwork,WAN)。这种网络用在公司计算机网络和公司内部网络中,并且这些网络通常有权访问互联网。当使用网络时,用户设备可以使用调制解调器或本领域普通技术人员熟知的、实现与广域计算机网络(诸如因特网)的通信的其它模块。本领域普通技术人员将理解,网络连接是使用通信模块建立客户端与服务器的连接的许多熟知方式的非限制性示例。
请参阅图4,其为本申请实施例提供的前端项目自动化上线方法的流程示意图。在一些实施例中,所述方法可以基于图1示出的应用场景实施。其中,自动化上线平台可以为计算机设备或服务器,用于进行前端项目的初始化配置、待上线代码文件包上传、上线消息推送、上线记录发布以及回滚;用户设备可能有一台也可能有多台,用于进行前端项目的代码开发和上传。
如图4所示,所述方法可包括如下步骤:S401、获取前端项目的初始化配置文件;S402、获取待上线代码文件包,上传至预先配置的目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径;S403、响应用户的上线确认操作,根据预先配置的目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中;以及S404、根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录。以下给出详细解释说明。
关于步骤S401、获取前端项目的初始化配置文件。
具体地,在本步骤中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径。用户(项目开发人员)可以在自动化上线平台上对前端项目进行的初始化配置,以形成初始化配置文件并进行存储。例如,配置前端项目的项目名称、前端项目所要上传的目标服务器、项目名称对应的代码文件包上传至所述目标服务器的目标路径等。自动化上线平台可以兼容已有的业务线(即前端项目)以及新增的业务线。用户可以在自动化上线平台的添加项目界面对相应的业务线进行的初始化配置,将相应的业务线添加至自动化上线平台;添加项目界面一实施例的示意图如图2所示。由于前端可能存在多个项目,本申请可以通过添加项目、实现分项目进行自动化上线。需要说明的是,本申请配置操作,仅在业务线初次被添加至自动化上线平台时执行,后续针对该业务线的更新、回滚均无需再进行配置操作,有效简化了上线步骤、提高上线效率。
关于步骤S402、获取待上线代码文件包,上传至预先配置的目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径。
具体地,在本步骤中,每个项目对应的待上线代码文件包上传至目标服务器进行暂存时,都会有一个对应的暂存目录(暂存路径),用于指示该项目对应的待上线代码文件包暂存在目标服务器的对应暂存区中(例如,暂存在相应文件夹中)。
在一些实施例中,所述待上线代码文件包可以为初始代码文件包,也可以更新代码文件包;即本申请前端项目在完成初始化配置之后,初始上线与更新上线可采用相同的流程,简化了上线操作流程,便于快速自动化上线。
在一些实施例中,步骤S402中所述的获取待上线代码文件包的步骤进一步包括:获取可扩展的持续集成工具(Jenkins)所上传的所述待上线代码文件包。其中,所述待上线代码文件包由所述Jenkins在检测到代码管理工具(Gitlab)上存在所述项目名称对应的代码文件合并到主分支(master)的合并操作时,接收所述合并到master的代码文件并进行打包后生成。
在一些实施例中,步骤S402中所述的获取待上线代码文件包的步骤进一步包括:获取Jenkins通过执行shell脚本调用自动化上线平台的接口上传的所述待上线代码文件包。其中,所述待上线代码文件包由所述Jenkins在检测到Gitlab上存在所述项目名称对应的代码文件合并到master的合并操作时,接收所述合并到master的代码文件并进行打包后生成。
具体地,第一用户(一般为项目开发人员)在安装有Git并做了账号配置的用户设备101上进行代码开发。该第一用户可以将开发完成后的代码文件提交到Git上,并创建将代码文件合并到master的合并请求。第二用户(一般为项目负责人)在安装有Git并做了账号配置的用户设备101上处理该合并请求,将代码文件合并到master。代码文件合并到master后,Jenkins能够自动检测到该代码文件的合并,进而自动触发代码文件打包功能,将该代码文件打包生成待上线代码文件包。具体地,Jenkins通过执行shell脚本,在脚本里去执行打包操作。当Jenkins通过执行shell脚本将代码文件打包生成待上线代码文件包后,shell脚本会进一步执行调用自动化上线平台的接口上传打包后的待上线代码文件包的操作。自动化上线平台获取该待上线代码文件包,即可上传至目标服务器103的暂存区中暂存,并向用户展示上线确认信息(例如在自动化上线平台102的显示界面展示一上线按钮)。
关于步骤S403、响应用户的上线确认操作,根据预先配置的目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中。
具体地,在本步骤中,每个项目对应的待上线代码文件包上传至目标服务器进行存储时,都会有一个对应的存储目录(目标路径),用于指示该项目对应的已上线代码文件包存储在目标服务器的对应目标区中(例如,存储在相应文件夹中)。
在一些实施例中,步骤S403进一步包括:在所述待上线代码文件包上传至所述暂存区中后,展示上线确认信息;以及接收用户对所展示的上线确认信息的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标区中。
具体地,所述的展示上线确认信息为:在所述自动化上线平台的显示界面展示上线按钮;所述的接收用户对所展示的上线确认信息的上线确认操作为:接收用户对所述上线按钮的点击操作。也即,当Jenkins通过执行shell脚本将代码文件打包生成待上线代码文件包后,shell脚本会进一步执行调用自动化上线平台的接口上传打包后的待上线代码文件包的操作。自动化上线平台通过接口获取Jenkins通过执行shell脚本上传的待上线代码文件包,上传至目标服务器的暂存区中暂存,并在其显示界面展示一“上线”按钮;当用户点击该“上线”按钮后,自动化上线平台会自动将暂存区中暂存的待上线代码文件包上传至对应的目标区中,完成自动化上传。
在一些实施例中,步骤S403进一步包括:向第三方应用程序推送上线消息。也即,本申请自动化上线平台还可以提供向第三方应用程序推送上线消息的功能,使得用户可以通过第三方应用程序及时获知上线消息,以便若发现上线功能有问题,可及时进行回滚等操作。可以通过上线事件触发消息推送,由自动化上线平台响应上线事件来执行上线消息的发送动作。例如,在用户点击“上线”按钮后,可以由平台的后端服务组件来执行上线消息的发送动作,通过webhook将自定义服务的上线消息推送至第三方应用程序(例如飞书)。
关于步骤S404、根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录。
具体地,在本步骤中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。其中,版本信息可以方便代码定位与回滚;暂存路径可以是根据待上线代码文件包上传的时间戳所形成的一个上传目录。版本信息用于说明目标项目的版本,从而可以根据该版本信息对目标项目进行管理。可以基于预设版本创建规则,生成得到版本信息;例如版本信息可以包括具有特定含义的字符或字符串。如20210624_141538,其中,20210624为当前项目的开发时间;141538为随机数字,也可以自定义其作用。为了确保对目标项目的当前版本进行标识,从而便于后续按照版本对目标项目进行管理,比如回滚等操作,可以在上线记录中展示当前版本的版本信息。需要说明的是,本申请也可以接收用户提交的版本信息作为当前版本的版本信息。上线记录展示界面一实施例的示意图如图3所示。
具体地,在本步骤中,通过自动化上线平台对内容分发网络(CDN)进行自动刷新缓存。其中,缓存是指CDN上的缓存,刷新缓存即为将CDN相应节点的缓存删除,从而上线的前端项目可以被用户获取。
在一些实施例中,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:刷新缓存。上线记录中显示的“刷新缓存”是防止自动刷新失败、或者是用户在上线时忘记选择自动刷新而预留的功能;若用户已经选择了自动刷新缓存后则上线记录不会显示此操作。相应的,所述方法进一步包括:接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作;根据所述目标路径对内容分发网络进行刷新缓存。也即,当自动刷新失败或者是用户在上线时忘记选择自动刷新时,用户可以通过对相应的上线记录中刷新缓存进行确认操作(例如点击),即可触发对目标项目的指定版本的刷新缓存操作;自动化上线平台接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作,再通过调用API(响应用户手动刷新缓存的调用)根据所述目标路径对内容分发网络进行刷新缓存。
在一些实施例中,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:回滚到当前版本。上线记录中显示的“回滚到当前版本”是为了实现对目标项目进行回滚。在持续交付的过程中,可能需要对项目版本进行回滚。目标项目为当前需要进行版本回滚的前端项目,由于目标项目可能在当前时刻之前经过多次的更新,即可能会有至少一个的历史版本。根据上线记录中显示的代码文件包的版本信息,用户通过对目标项目的指定历史版本的上线记录中“回滚到当前版本”进行确认操作(例如点击),即可触发对目标项目的指定历史版本的回滚。相应的,所述方法进一步包括:接收用户对目标项目的指定历史版本的上线记录中回滚到当前版本的确认操作;根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中;根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。具体地,自动化上线平台接收用户对目标项目的指定历史版本的上线记录中回滚到当前版本的确认操作时,通过将指定历史版本的代码文件包从其所在的暂存区中取出,并根据对应的目标路径上传至对应目标区中并自动刷新缓存,可以实现准确、可靠地将目标项目回滚至待回滚的版本信息所对应的历史版本。且由于同一上线记录中包括代码文件包的版本信息以及暂存路径,并与“回滚到当前版本”操作组件关联(各上线记录对应的代码文件包依暂存路径单独存储),因此,回滚对应的指定历史版本的代码文件包可以直接从其所在的暂存区中获取,并采用全覆盖的方式准确、可靠地上传至对应目标区中。本申请回滚采用指定版本代码文件包全覆盖形式而非替换差异文件形式,无需检测当前版本与指定版本之间的差异,也无需对各历史版本的版本信息进行遍历以获权指定历史版本的代码文件包,有效简化了回滚的操作流程,提高回滚效率与准确性,可以实现准确、可靠地快速更新/回滚。
在一些实施例中,所述方法进一步包括:步骤S405、响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。即,自动化上线平台在接收到用户触发的针对目标项目的指定历史版本的回滚确认操作时,通过将指定历史版本的代码文件包从其所在的暂存区中取出,并根据对应的目标路径上传至对应目标区中并自动刷新缓存,可以实现准确、可靠地将目标项目回滚至待回滚的版本信息所对应的历史版本。回滚对应的指定历史版本的代码文件包可以直接从其所在的暂存区中获取,并采用全覆盖的方式准确、可靠地上传至对应目标区中,有效简化了回滚的操作流程,提高回滚效率与准确性。
根据以上内容可以看出,本申请实施例提供的前端项目自动化上线方法,通过预先对前端项目进行初始化配置,在获取待上线代码文件包时自动上传至预先配置的目标服务器的暂存区中并存储暂存路径;之后响应用户的上线确认操作,根据预先配置的目标路径将暂存区中的待上线代码文件包自动上传至预先配置的目标服务器的目标区中;并根据目标路径对内容分发网络进行自动刷新缓存发布上线记录,实现减少人工介入的前端项目自动化上线。通过连通Jenkins与自动化上线平台,在自动化上线平台中进行OSS上传、刷新缓存、生成上线记录、发送上线消息、回滚等功能丰富的自动化操作,可以提升项目开发效率,并且提升项目上线的可靠性,大大减少了人工配置成本,减少了运营成本,极大缩短了项目版本发布时间;解决了现有技术方案在实现前端项目上线时需要手动操作,且没有上线记录,部署上线后出现异常时回滚至历史版本的操作复杂的问题。
基于同一发明构思,本申请还提供了一种前端项目自动化上线装置,该装置可以布设在自动化上线平台上,并基于图1示出的应用场景实施。由于该装置是本申请实施例提供的前端项目自动化上线方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施例可以参见所述方法的实施,重复之处不再赘述。
请参阅图5,其示出了本申请实施例提供的前端项目自动化上线装置的结构示意图。如图5所示,本实施例所述的前端项目自动化上线装置50包括:获取单元501、第一上传单元502、第二上传单元503以及上线处理单元504。
具体地,所述获取单元501用于获取前端项目的初始化配置文件,其中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径。所述第一上传单元502用于获取待上线代码文件包,上传至所述目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径。所述第二上传单元503用于响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中。所述上线处理单元504用于根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录;其中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。
在一些实施例中,所述第一上传单元502进一步用于:获取Jenkins所上传的待上线代码文件包。其中,所述待上线代码文件包由Jenkins在Gitlab上存在所述项目名称对应的代码文件合并到master的合并操作时,接收所述合并到master的代码文件并进行打包后生成。
在一些实施例中,所述第一上传单元502进一步用于:获取Jenkins通过执行shell脚本调用自动化上线平台的接口上传的待上线代码文件包。其中,所述待上线代码文件包由Jenkins在检测到Gitlab上存在所述项目名称对应的代码文件合并到master的合并操作时,接收所述合并到master的代码文件并进行打包后生成。
在一些实施例中,所述第二上传单元503进一步用于:在待上线代码文件包上传至暂存区中后,展示上线确认信息;以及接收用户对所展示的上线确认信息的上线确认操作,根据目标路径将暂存区中的待上线代码文件包上传至目标区中。具体地,所述的展示上线确认信息为:在所述自动化上线平台的显示界面展示上线按钮;所述的接收用户对所展示的上线确认信息的上线确认操作为:接收用户对所述上线按钮的点击操作。也即,当Jenkins通过执行shell脚本将代码文件打包生成待上线代码文件包后,shell脚本会进一步执行调用自动化上线平台的接口上传打包后的待上线代码文件包的操作。自动化上线平台通过接口获取Jenkins通过执行shell脚本上传的待上线代码文件包,上传至目标服务器的暂存区中暂存,并在其显示界面展示一“上线”按钮;当用户点击该“上线”按钮后,自动化上线平台会自动将暂存区中暂存的待上线代码文件包上传至对应的目标区中,完成自动化上传。
在一些实施例中,所述第二上传单元503进一步用于:向第三方应用程序推送上线消息。也即,本申请还可以提供向第三方应用程序推送上线消息的功能,使得用户可以通过第三方应用程序及时获知上线消息,以便若发现上线功能有问题,可及时进行回滚等操作。可以通过上线事件触发消息推送,由所述第二上传单元503响应上线事件来执行上线消息的发送动作。例如,在用户点击“上线”按钮后,可以由第二上传单元503来执行上线消息的发送动作,通过webhook将自定义服务的上线消息推送至第三方应用程序(例如飞书)。
在一些实施例中,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:刷新缓存。上线记录中显示的“刷新缓存”是防止自动刷新失败、或者是用户在上线时忘记选择自动刷新而预留的功能;若用户已经选择了自动刷新缓存后则上线记录不会显示此操作。相应的,上线处理单元504进一步用于:接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作;根据所述目标路径对内容分发网络进行刷新缓存。也即,当自动刷新失败或者是用户在上线时忘记选择自动刷新时,用户可以通过对相应的上线记录中刷新缓存进行确认操作(例如点击),即可触发对目标项目的指定版本的刷新缓存操作;上线处理单元504接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作,再通过调用API(响应用户手动刷新缓存的调用)根据所述目标路径对内容分发网络进行刷新缓存。
在一些实施例中,所述装置50进一步包括:回滚处理单元505。所述回滚处理单元505用于响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
在一些实施例中,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:回滚到当前版本。上线记录中显示的“回滚到当前版本”是为了实现对目标项目进行回滚。在持续交付的过程中,可能需要对项目版本进行回滚。目标项目为当前需要进行版本回滚的前端项目,由于目标项目可能在当前时刻之前经过多次的更新,即可能会有至少一个的历史版本。根据上线记录中显示的代码文件包的版本信息,用户通过对目标项目的指定历史版本的上线记录中“回滚到当前版本”进行确认操作(例如点击),即可触发对目标项目的指定历史版本的回滚。具体地,回滚处理单元505接收用户对目标项目的指定历史版本的上线记录中回滚到当前版本的确认操作时,通过将指定历史版本的代码文件包从其所在的暂存区中取出,并根据对应的目标路径上传至对应目标区中并自动刷新缓存,可以实现准确、可靠地将目标项目回滚至待回滚的版本信息所对应的历史版本。且由于同一上线记录中包括代码文件包的版本信息以及暂存路径,并与“回滚到当前版本”操作组件关联(各上线记录对应的代码文件包依暂存路径单独存储),因此,回滚对应的指定历史版本的代码文件包可以直接从其所在的暂存区中获取,并采用全覆盖的方式准确、可靠地上传至对应目标区中。本申请回滚采用指定版本代码文件包全覆盖形式而非替换差异文件形式,无需检测当前版本与指定版本之间的差异,也无需对各历史版本的版本信息进行遍历以获权指定历史版本的代码文件包,有效简化了回滚的操作流程,提高回滚效率与准确性,可以实现准确、可靠地快速更新/回滚。
根据以上内容可以看出,本申请实施例提供的前端项目自动化上线装置,通过预先对前端项目进行初始化配置,在获取待上线代码文件包时自动上传至预先配置的目标服务器的暂存区中并存储暂存路径;之后响应用户的上线确认操作,根据预先配置的目标路径将暂存区中的待上线代码文件包自动上传至预先配置的目标服务器的目标区中;并根据目标路径对内容分发网络进行自动刷新缓存发布上线记录,实现减少人工介入的前端项目自动化上线。通过连通Jenkins与自动化上线平台,在自动化上线平台中进行OSS上传、刷新缓存、生成上线记录、发送上线消息、回滚等功能丰富的自动化操作,可以提升项目开发效率,并且提升项目上线的可靠性,大大减少了人工配置成本,减少了运营成本,极大缩短了项目版本发布时间;解决了现有技术方案在实现前端项目上线时需要手动操作,且没有上线记录,部署上线后出现异常时回滚至历史版本的操作复杂的问题。且自动化上线平台是自主研发,用户可在界面上看到上线记录,最大化提升了用户体验。
与上述方法实施例相对应地,本申请实施例还提供了一种服务器。该服务器可以是自动化上线平台,该服务器至少包括用于数据存储的存储器和用于数据处理的处理器。其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、CPU、GPU(Graphics Processing Unit,图形处理单元)、DSP或FPGA实现。对于存储器来说,存储器中存储有操作指令,该操作指令可以为计算机程序,通过处理器执行该计算机程序来实现上述本申请任以实施例的前端项目自动化上线方法流程中的各个步骤。
请参阅图6,其为本申请实施例提供的一种服务器的结构示意图;如图6所示,本申请实施例中该服务器110包括:处理器111、显示器112、存储器113、输入设备116、总线115和通讯模块114;该处理器111、存储器113、输入设备116、显示器112和通讯模块114均通过总线115连接,该总线115用于该处理器111、存储器113、显示器112、通讯模块114和输入设备116之间传输数据。
其中,存储器113可用于存储可在所述处理器上运行的计算机程序以及模块,如本申请实施例中的前端项目自动化上线方法对应的程序指令/模块,处理器111通过运行存储在存储器113中的计算机程序以及模块,从而执行服务器110的各种功能应用以及数据处理,如本申请实施例提供的前端项目自动化上线方法。存储器113可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据服务器110的使用所创建的数据(比如待评估广告投放计划信息、激活用户数量、用户行为数据、用户属性数据、预测结果、评估值)等。此外,存储器113可以包括高速随机存取存储器,还可以包括非易失性存储器。
处理器111是服务器110的控制中心,利用总线115以及各种接口和线路连接整个服务器110的各个部分,通过运行或执行存储在存储器113内的软件程序和/或模块,以及调用存储在存储器113内的数据,执行服务器110的各种功能和处理数据。可选的,处理器111可包括一个或多个处理单元,如CPU、GPU、数字处理单元等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序在被处理器执行时,用于实现本申请任一实施例所述的前端项目自动化上线方法。即,本申请提供的前端项目自动化上线方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行上述根据本申请各种示例性实施例的前端项目自动化上线方法的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的实施例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (14)

1.一种前端项目自动化上线方法,适用于自动化上线平台;其特征在于,所述方法包括如下步骤:
获取前端项目的初始化配置文件,其中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径;
获取待上线代码文件包,上传至所述目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径;
响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中;
根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录;其中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。
2.根据权利要求1所述的方法,其特征在于,所述待上线代码文件包为初始代码文件包或更新代码文件包。
3.根据权利要求1所述的方法,其特征在于,所述的获取待上线代码文件包的步骤进一步包括:
获取可扩展的持续集成工具Jenkins所上传的所述待上线代码文件包;其中,所述待上线代码文件包由所述Jenkins在检测到代码管理工具Gitlab上存在所述项目名称对应的代码文件合并到主分支master的合并操作时,接收所述合并到master的代码文件并进行打包后生成。
4.根据权利要求3所述的方法,其特征在于,所述的获取待上线代码文件包的步骤进一步包括:
获取所述Jenkins通过执行shell脚本调用所述自动化上线平台的接口上传的所述待上线代码文件包。
5.根据权利要求1所述的方法,其特征在于,所述的响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中的步骤进一步包括:
在所述待上线代码文件包上传至所述暂存区中后,展示上线确认信息;
接收用户对所展示的上线确认信息的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标区中。
6.根据权利要求5所述的方法,其特征在于,
所述的展示上线确认信息为:在所述自动化上线平台的显示界面展示上线按钮;
所述的接收用户对所展示的上线确认信息的上线确认操作为:接收用户对所述上线按钮的点击操作。
7.根据权利要求1所述的方法,其特征在于,所述的响应用户的上线确认操作,将根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中的步骤进一步包括:
向第三方应用程序推送上线消息。
8.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
9.根据权利要求1所述的方法,其特征在于,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:回滚到当前版本;所述方法进一步包括:
接收用户对目标项目的指定历史版本的上线记录中回滚到当前版本的确认操作;
根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中;
根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
10.根据权利要求1所述的方法,其特征在于,所述上线记录还显示:针对当前版本的代码文件包的可执行操作,其中,所述可执行操作包括:刷新缓存;所述方法进一步包括:
接收用户对目标项目的指定版本的上线记录中刷新缓存的确认操作;
根据所述目标路径对内容分发网络进行刷新缓存。
11.一种前端项目自动化上线装置,适用于自动化上线平台;其特征在于,所述装置包括:
获取单元,用于获取前端项目的初始化配置文件,其中,所述初始化配置文件包括:所述前端项目的项目名称、所述前端项目上传的目标服务器、所述项目名称对应的代码文件包上传至所述目标服务器的目标路径;
第一上传单元,用于获取待上线代码文件包,上传至所述目标服务器的暂存区中,并存储所述待上线代码文件包上传至所述暂存区的暂存路径;
第二上传单元,用于响应用户的上线确认操作,根据所述目标路径将所述暂存区中的所述待上线代码文件包上传至所述目标服务器的目标区中;
上线处理单元,用于根据所述目标路径对内容分发网络进行刷新缓存,并发布上线记录;其中,所述上线记录至少包括此次上线的代码文件包的版本信息以及暂存路径。
12.根据权利要求11所述的装置,其特征在于,所述装置进一步包括:
回滚处理单元,用于响应用户触发的针对目标项目的指定历史版本的回滚确认操作,根据对应的目标路径将所述指定历史版本的代码文件包从其所在的暂存区中上传至所述目标服务器的对应目标区中,进而根据所述对应的目标路径对所述内容分发网络进行刷新缓存,并发布回滚记录;其中,所述回滚记录至少包括此次回滚所关联的前次上线记录以及所述指定历史版本的版本信息。
13.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时,实现如权利要求1~10中任一项所述的方法。
14.一种服务器,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1~10中任一项所述的方法。
CN202111014695.5A 2021-08-31 2021-08-31 前端项目自动化上线方法、装置、服务器和存储介质 Withdrawn CN113726575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111014695.5A CN113726575A (zh) 2021-08-31 2021-08-31 前端项目自动化上线方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111014695.5A CN113726575A (zh) 2021-08-31 2021-08-31 前端项目自动化上线方法、装置、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN113726575A true CN113726575A (zh) 2021-11-30

Family

ID=78679940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111014695.5A Withdrawn CN113726575A (zh) 2021-08-31 2021-08-31 前端项目自动化上线方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN113726575A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840582A (zh) * 2023-02-21 2023-03-24 北京一猫汽车科技有限公司 一种服务器批量管理代理发布系统
WO2023088374A1 (zh) * 2021-11-17 2023-05-25 贵州白山云科技股份有限公司 代码部署方法、代码执行方法、云计算平台、代码仓库、设备、介质及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023088374A1 (zh) * 2021-11-17 2023-05-25 贵州白山云科技股份有限公司 代码部署方法、代码执行方法、云计算平台、代码仓库、设备、介质及系统
CN115840582A (zh) * 2023-02-21 2023-03-24 北京一猫汽车科技有限公司 一种服务器批量管理代理发布系统

Similar Documents

Publication Publication Date Title
CN111314141B (zh) 路由更新方法及装置
US11032140B2 (en) Using a template to update a stack of resources
CN106528224B (zh) 一种Docker容器的内容更新方法、服务器及系统
JP6463393B2 (ja) テナント移行にわたるテナント・データのリカバリ
CN107766050B (zh) 一种异构应用的部署方法以及装置
US9811356B2 (en) Automated software configuration management
CN113726575A (zh) 前端项目自动化上线方法、装置、服务器和存储介质
CN103812699A (zh) 基于云计算的监控管理系统
US20150236799A1 (en) Method and system for quick testing and detecting mobile devices
CN103873502A (zh) 缓存更新方法及系统、提供更新资源的方法及系统
EP3809269A1 (en) Monitoring a distributed application server environment
CN113868126A (zh) 应用调试方法、装置、设备的存储介质
CN108920203A (zh) 一种页面加载方法及设备
CN109962914B (zh) 一种防火墙配置方法及装置
US20130124971A1 (en) Real time web script refresh using asynchronous polling without full web page reload
CN112860251A (zh) 一种网站前端构建的方法与系统
CN114490073A (zh) 电子地图运维方法、电子地图数据使用方法及服务系统
CN111880810A (zh) 一种服务实例部署方法、装置及电子设备和存储介质
CN113157306A (zh) 一种资源打包管理方法、装置、设备及存储介质
CN107203915B (zh) 数据存储方法及装置
CN116662143A (zh) 测试方法、装置、设备、存储介质和计算机程序产品
CN112565472B (zh) 静态资源的处理方法和装置
CN113656378A (zh) 一种服务器管理方法、装置、介质
CN114519477A (zh) 大数据平台租户管理系统、方法、存储介质及电子设备
CN114968216A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20211130

WW01 Invention patent application withdrawn after publication