一种代码发布工具的制作方法

文档序号:16996890发布日期:2019-03-02 01:26阅读:207来源:国知局
一种代码发布工具的制作方法

本发明涉及代码发布技术领域,特别是涉及一种代码发布工具。



背景技术:

目前的代码发布过程是:程序员手动上传代码到服务器-修改测试环境配置进行测试-在模拟环境内对代码进行预发布-审核-发布等流程。但是,目前的发布流程的各个部分,均需要由工作人员人工输入特定的指令语句后,才能够进行相应的操作。例如,在进行测试时,需要工作人员输入指定的测试语句,该测试语句内可能包括测试脚本的目录或者测试项等内容。

这样的发布方式下,工作人员需要学习并背诵各个过程的指令语句,业务复杂。一旦工作人员遗忘指令语句,则可能会导致发布过程无法完成或完成不够标准,导致可能有些问题不会被发现,如果这些问题导致客户的产品工作不正常,就需要花费公司的很多资源去排查,如果问题严重的话给公司带来损失,可靠性低。举例来说,代码测试过程中由于会存在多种测试项,即对代码进行多项测试,因此工作人员很容易出现遗漏测试项的情况的,导致测试不完整。并且,在发布过程不够完善的情况下,可能需要工作人员再次返工,从而增加了时间操作成本,降低了代码发布效率。

并且,目前的发布方式流程不够规范,整个流程仅依据工作人员的自觉执行,导致执行各个部分的开发人员可能会越权执行其他部分的工作,例如,进行预发布的工作人员可能在预发布完成后,不将预发布完成后的代码发送给下一级进行审核,而是直接发布到主站,导致最终发布的代码可能存在问题,给公司带来损失,可靠性低。

因此,如何提供一种业务简单、可靠性高的代码发布工具是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种代码发布工具,工作人员仅需要通过触发显示界面上的相应按钮,代码发布工具即可执行相应的发布处理操作,业务简单,且发布流程中的各个模块仅能够将自身处理完成的代码发布至下一级的模块,而不能越级发布,提高了代码发布流程的完善性和可靠性。

为解决上述技术问题,本发明提供了一种代码发布工具,包括:

代码发布模块,用于接收输入的待发布代码;接收触发代码发布界面上的提交按钮后生成的提交指令后,将此次输入的待发布代码发送至测试模块;

所述测试模块,用于缓存接收到的所述待发布代码,接收触发测试界面上的测试按钮后生成的测试指令后,调用预设测试脚本对所述待发布代码进行测试,并显示测试结果;接收触发所述测试界面上的测试通过按钮后生成的第一通过指令后,将当前测试的待发布代码发送至预发布模块;

所述预发布模块,用于缓存接收到的待发布代码,接收触发预发布界面上的预发布按钮后生成的预发布指令后,调用预设体验脚本对所述待发布代码进行预发布操作,并显示预发布结果;接收触发所述预发布界面上的预发布通过按钮后生成的第二通过指令后,将当前预发布的待发布代码发送至审核模块;

所述审核模块,用于缓存接收到的待发布代码,并显示全部未发布的待发布代码的相关信息,接收输入的审核通过指令后,将所述审核通过指令对应的待发布代码进行发布。

优选地,所述测试界面上设置有多个测试按钮,每个所述测试按钮分别链接有对应的测试脚本。

优选地,所述测试模块具体包括:

第一缓存单元,用于缓存接收到的待发布代码,并显示全部未测试的待发布代码的标识;

第一选择触发单元,用于接收触发标识后生成的第一选择指令及触发测试界面上的相应测试按钮后生成的测试指令后,对所述第一选择指令对应的待发布代码进行所述测试指令对应的测试,并显示测试结果;

第一结果管理单元,用于接收触发所述测试界面上的测试通过按钮后生成的第一通过指令后,将当前测试的待发布代码发送至所述预发布模块。

优选地,所述预发布模块具体包括:

第二缓存单元,用于缓存接收到的待发布代码,并显示全部未预发布的待发布代码的标识;

第二选择触发单元,用于接收触发标识后生成的第二选择指令及触发预发布界面上的预发布按钮后生成的预发布指令后,对所述第二选择指令对应的待发布代码进行预发布,并显示预发布结果;

第二结果管理单元,用于接收触发所述预发布界面上的预发布通过按钮后生成的第二通过指令后,将当前预发布的待发布代码发送至所述审核模块。

优选地,所述待发布代码的标识为代码版本号。

优选地,所述代码发布模块、所述测试模块、所述预发布模块以及所述审核模块均包括权限校验单元;

所述权限校验单元,用于保存具有登录权限的用户信息;在接收到触发对应显示界面上的按钮后生成的触发指令时,若当前未处于登录状态,则调用登录界面进行显示;接收输入的登录请求,依据保存的用户信息校验所述登录请求内的信息,若校验通过,则允许用户登录。

优选地,还包括:

发布代码数据库,用于保存发布完成后的代码的相关信息;

回滚模块,用于接收到回滚界面上数据输入窗口内输入的回滚指令后,依据所述发布代码数据库保存的信息,选择重新发布所述回滚指令对应的代码。

优选地,所述发布代码数据库,还用于:

保存所述审核模块接收的、发布未完成的代码的相关信息。

优选地,所述测试结果包括:代码版本号、代码发布人、测试时间以及各项测试运行完成的状态。

优选地,所述预发布结果包括:代码版本号、代码发布人、预发布开始时间、预发布结束时间、预发布的对象主机、预发布状态以及失败原因。

本发明提供了一种代码发布工具,包括代码发布模块、测试模块、预发布模块以及审核模块,每个模块对应链接有一个显示界面,在接收到自身对应的显示界面上的按钮触发后生成的对应指令后,执行相应的操作。在此过程中,测试模块以及预发布模块在接收到相应的指令后,会调用预设的脚本执行相应的测试和预发布操作;且代码发布模块、测试模块、预发布模块仅能够将处理完成后的代码发送至下一级模块。由此可见,本发明中,工作人员不需要输入指令语句,而是仅需要触发相应的按钮,即可实现相应的操作,工作人员的业务简单,且由于显示界面上设置有相应的按钮,因此减少了遗漏发布操作的情况出现,保证了发布过程的完整性,尽可能避免了返工的情况出现,提高了代码发布效率。并且,本发明的代码发布工具具有较为完善的发布流程,各个模块仅能够将自身处理完成后的代码发布至下一模块,避免了工作人员越级发送代码的可能,保证了最终发布的代码经历了完整的代码发布流程,减少了由于发布过程遗漏导致的代码存在问题的可能,提高了代码发布的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种代码发布工具的结构示意图。

具体实施方式

本发明的核心是提供一种代码发布工具,工作人员仅需要通过触发显示界面上的相应按钮,代码发布工具即可执行相应的发布处理操作,业务简单,且发布流程中的各个模块仅能够将自身处理完成的代码发布至下一级的模块,而不能越级发布,提高了代码发布流程的完善性和可靠性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种代码发布工具,参见图1所示,图1为本发明提供的一种代码发布工具的结构示意图。该代码发布工具包括:

代码发布模块1,用于接收输入的待发布代码;接收触发代码发布界面上的提交按钮后生成的提交指令后,将此次输入的待发布代码发送至测试模块2;

测试模块2,用于缓存接收到的待发布代码,接收触发测试界面上的测试按钮后生成的测试指令后,调用预设测试脚本对待发布代码进行测试,并显示测试结果;接收触发测试界面上的测试通过按钮后生成的第一通过指令后,将当前测试的待发布代码发送至预发布模块3;

预发布模块3,用于缓存接收到的待发布代码,接收触发预发布界面上的预发布按钮后生成的预发布指令后,调用预设体验脚本对待发布代码进行预发布操作,并显示预发布结果;接收触发预发布界面上的预发布通过按钮后生成的第二通过指令后,将当前预发布的待发布代码发送至审核模块4;

审核模块4,用于缓存接收到的待发布代码,并显示全部未发布的待发布代码的相关信息,接收输入的审核通过指令后,将审核通过指令对应的待发布代码进行发布。

其中,预发布指的是在代码测试完成后、投入正式发布之前,需要将代码在预设的体验环境内进行试运行,预设的体验环境又称为体验站,是根据实际的发布环境构建的模拟场景,在此场景中模拟代码发布的情况,查看是否出现发布失败的情况以及分析失败原因,例如连接不上主机等。进行预发布的原因是因为实际发布时会存在各种各样的问题,许多问题仅通过测试是无法查找出来的,而将代码在模拟实际发布环境的体验环境内运行后,则能够查找出许多实际应用时可能出现的情况,从而进一步对代码进行完善。预发布的操作在代码实际发布之前是一定要进行的一项操作,为了保证代码的可靠性。

而审核,指的是当代码通过了测试和预发布后,表明该代码已经可以进行实际发布了,基本不再存在问题,但是由于不同的公司需求不同,例如有些公司设定有具体的代码发布时间,不能够超前发布,故若代码预发布完成后即立刻进行发布,则会影响公司的正常业务安排造成损失,故需要在代码发布前进行审核,确定当前代码已经允许发布后再进行发布,这样能够保证代码发布的可靠性。

可以理解的是,代码发布模块1、测试模块2、预发布模块3以及审核模块4均链接有对应的显示界面以及相应的脚本,在接收到自身对应的显示界面上的按钮触发后生成的对应指令后,执行相应的操作。由此可见,本发明中,工作人员不需要输入指令语句,而是仅需要触发相应的按钮,即可实现相应的操作,工作人员的业务简单,且由于显示界面上设置有相应的按钮,工作人员能够直接看到所需要触发的操作按钮,因此,不需要工作人员靠自己的记忆来选择输入的操作指令,故减少了遗漏操作的情况出现,保证了发布过程的完整性,尽可能避免了返工的情况出现,提高了代码发布效率。

并且,本发明的代码发布工具具有较为完善的发布流程,各个模块按照代码发布模块1-测试模块2-预发布模块3-审核模块4的顺序进行操作,前一个模块仅能够将自身处理完成后的代码发布至下一模块,顺序不可颠倒,也不可跳过某一个模块发送代码,且仅有审核模块4能够将审核通过的代码进行发布。由此可见,这样的发布流程避免了工作人员越级发送代码的可能,能够保证最终发布的代码经历了完整的代码发布流程,减少了由于发布过程遗漏导致的代码存在问题的可能,提高了代码发布的可靠性。

具体的,本发明的代码发布界面上可以设置代码输入窗口或代码路径窗口,代码输入窗口用于供用户直接输入待发布的代码,代码路径窗口可以供用户输入代码保存的路径,后续代码发布模块1可以根据该路径获取之前保存的待发布代码。具体采用哪种方式输入待发布代码本发明不作限定。不过由于代码版本号对于代码识别具有较为重要的意义,因此代码发布界面通常还需要设定版本定义窗口,用于供用户输入当前输入的待发布代码的版本号。另外,代码发布界面上还可以包含以下窗口:站点更新(用于输入待发布代码下一步进入的站点)、代码更新理由、代码发布人、代码更新理由等。即对于用户来说,代码发布模块1的使用方式是:在代码发布界面的各个窗口内输入相应的内容,之后触发提交按钮,形成一个测试站版本的代码,之后将该测试站版本的代码发送至测试模块2。当然,本发明不限定代码发布界面具体如何设置,只要其能够包含提交按钮以及供用户输入待发布代码的窗口即可。

在一种具体实施例中,测试界面上设置有多个测试按钮,每个测试按钮分别链接有对应的测试脚本。

由于不同的代码需要测试的测试项很多,若仅设置一个测试按钮,并将全部需要测试的部分全部写入同一个测试脚本的话,则会导致每个代码均进行了全部的测试项测试,但是部分代码可能并不需要测试全部的测试项,因此,这样会导致测试时间长;并且将全部测试内容写入同一测试脚本的话,也会导致测试过程混乱,并且依据测试结果查看时,也不容易分析出导致错误的代码段,给代码修正带来了困难。因此,本实施例将各个测试项分开来,分别设置多个测试按钮,每个测试按钮对应一个测试脚本,不同的测试脚本对应不同的测试项,这样使得工作人员能够根据代码类型自定义的选择合适的测试项进行测试,避免无用的测试时间的浪费;并且,这种测试方式下的测试结果更具有针对性,更加方便工作人员依据测试结果进行代码的错误修正。例如,测试界面上可以设置两个测试按钮:接口测试按钮和web测试按钮。

用户可以通过点击相应的测试按钮进行测试,之后显示测试结果,用户根据测试结果来选择是否触发测试通过按钮,用户触发测试通过按钮后,测试通过的待发布代码会发送至预发布模块3,另外,由于需要工作人员得知代码的测试是否通过,因此需要测试界面上设置测试未通过按钮,若用户触发测试未通过按钮,则表明测试未通过,返回测试未通过的响应至代码发布模块1,该测试未通过的响应内包含未通过测试的代码标识(例如版本号等)。当然,在测试通过按钮受到触发时,也可以发送测试通过的响应至代码发布模块1,测试通过的响应内也包含通过测试的代码标识。当然,本发明对此不作限定。

另外,测试界面上还可显示待发布代码的内容,供工作人员依据测试结果对其进行分析,当然,本发明不限定测试界面的具体显示内容。

其中,本发明中的测试结果包括:代码版本号、代码发布人、测试时间以及各项测试运行完成的状态。测试结果还包括各项测试的内容以及代码运行结果。当然,本发明不限定测试结果包含的具体内容。

在一种具体实施例中,测试模块2具体包括:

第一缓存单元,用于缓存接收到的待发布代码,并显示全部未测试的待发布代码的标识;

第一选择触发单元,用于接收触发标识后生成的第一选择指令及触发测试界面上的相应测试按钮后生成的测试指令后,对第一选择指令对应的待发布代码进行测试指令对应的测试,并显示测试结果;

第一结果管理单元,用于接收触发测试界面上的测试通过按钮后生成的第一通过指令后,将当前测试的待发布代码发送至预发布模块3。

可以理解的是,由于测试需要一定的时间,因此,在测试模块2尚未测试完成时,可能接收到代码发布模块1发送的多个代码,此时,测试模块2中未测试的代码数量就会超过一个。由于考虑到功耗等问题,代码测试通常同一时刻仅对一个代码进行测试,因此,这种情况下,需要首先缓存这些待发布代码,之后供用户依据每个待发布代码的标识进行选择,然后对所选择的待发布代码进行测试。这种方式,在需要进行代码测试时,不需要用户手动输入想要测试的待发布代码的标识,而是直接从测试界面上进行点击即可,简化了工作人员的操作,也不需要工作人员去记忆各个待发布代码的标识,简化了业务的复杂性。

另外,预发布结果可以包括:代码版本号、代码发布人、预发布开始时间、预发布结束时间、预发布的对象主机(或者说预发布站点)、预发布状态以及失败原因。当然,预发布结果也可包含其他内容,本发明对此不作限定。以表1为例,表1为本发明提供的一种预发布结果列表。

表1本发明提供的一种预发布结果列表

其中,预发布结果可以表格的形式进行保存,也可以其他文本形式进行保存,本发明不限定预发布结果的保存形式。

在另一具体实施例中,预发布模块3具体包括:

第二缓存单元,用于缓存接收到的待发布代码,并显示全部未预发布的待发布代码的标识;

第二选择触发单元,用于接收触发标识后生成的第二选择指令及触发预发布界面上的预发布按钮后生成的预发布指令后,对第二选择指令对应的待发布代码进行预发布,并显示预发布结果;

第二结果管理单元,用于接收触发预发布界面上的预发布通过按钮后生成的第二通过指令后,将当前预发布的待发布代码发送至审核模块4。

可以理解的是,由于预发布需要一定的时间,因此,在预发布模块3尚未预发布完成时,可能接收到测试模块2发送的多个代码,此时,预发布模块3中未预发布的代码数量就会超过一个。由于代码是在模拟实际发布环境的体验环境内进行预发布,因此考虑到预发布体验环境能够承担的资源消耗等问题,代码预发布通常同一时刻仅对一个代码进行预发布,因此,这种情况下,需要首先缓存这些待发布代码,之后供用户依据每个待发布代码的标识进行选择,然后对所选择的待发布代码进行预发布。这种方式,在需要进行代码预发布时,不需要用户手动输入想要预发布的待发布代码的标识,而是直接从预发布界面上进行点击即可,简化了工作人员的操作,也不需要工作人员去记忆各个待发布代码的标识,简化了业务的复杂性。

具体的,预发布界面上可以设置预发布版本窗口和预发布站点窗口以及预发布按钮,此时预发布模块3的工作过程如下:

接收工作人员触发预发布版本窗口后生成的第一菜单指令后,会调用版本列表以下拉菜单的形式在预发布界面上进行显示,供工作人员选择,接收工作人员触发所述下拉菜单中的版本号后生成的版本选择指令后,预发布模块3会得知工作人员所选择的版本号;接收工作人员触发预发布站点窗口后生成的第二菜单指令后,会调用站点列表以下拉菜单的形式在预发布界面上进行显示,供工作人员选择,接收工作人员触发所述下拉菜单中的站点后生成的站点选择指令后,预发布模块3会得知工作人员所选择的站点;之后接收到工作人员触发预发布按钮生成的预发布指令后,预发布模块3会依据之前得知的版本号来调用相应的代码信息,之后将该调用的代码信息在之前得知的站点上进行预发布,完成预发布操作。

在优选实施例中,待发布代码的标识为代码版本号。

可以理解的是,代码版本号与代码唯一对应,代码每进行一次上传,代码的版本号即会增加一个数值,并且,代码版本号还可能携带有代码的类型,因此,依据代码版本号即能够区分不同的代码内容。

在一种优选实施例中,代码发布模块1、测试模块2、预发布模块3以及审核模块4均包括权限校验单元;

权限校验单元,用于保存具有登录权限的用户信息;在接收到触发对应显示界面上的按钮后生成的触发指令时,若当前未处于登录状态,则调用登录界面进行显示;接收输入的登录请求,依据保存的用户信息校验登录请求内的信息,若校验通过,则允许用户登录。

可以理解的是,在实际应用中,代码的发布、测试、预发布以及审核均是由不同的部门进行的,每个部门理应仅处理自己部门的工作内容,若有工作人员跨部门执行了其他部门的内容的话,由于这些工作人员可能并不了解其他部门的工作要求,因此,可能导致其跨部门执行的内容影响了正常的代码发布流程。为了避免这种情况,需要为每个模块设置权限校验单元,避免不同部门之间的出现私自跨部门处理工作的情况,保证每个代码的各个流程均符合正常工作流程,保证代码的正常发布。

作为优选地,该代码发布工具还包括:

发布代码数据库,用于保存发布完成后的代码的相关信息;

回滚模块,用于接收到回滚界面上数据输入窗口内输入的回滚指令后,依据所述发布代码数据库保存的信息,选择重新发布所述回滚指令对应的代码。

可以理解的是,代码在发布后,可能出现运行不符合期望等情况,此时用户可能会希望恢复至之前版本的代码,该操作成为回滚操作。为了实现回滚的目的,首先需要保存各个发布完成的代码的相关信息,这里的相关信息包括代码的内容、代码版本号,另外还可包括各个代码的发布时间等。输入的回滚指令内需要携带有想要回滚到的代码的版本号,即想要回滚到哪一版本的代码。另外,在优选实施例中,可以对回滚操作进行记录,保存每次回滚操作的相关信息,其中,回滚操作的相关信息包括回滚开始时间、回滚结束时间、回滚前版本号、回滚后版本号、回滚状态以及回滚站点等,或者还可包含负责人等信息。这里的回滚站点指的是代码所发布的站点,由于代码需要在站点上进行发布,因此需要得知想要进行发布的站点。为了方便理解,以表2为例,表2为本发明提供的一种回滚操作的相关信息列表。

表2本发明提供的一种回滚操作的相关信息列表

其中,发布代码数据库中保存的代码的相关信息以及后续保存的回滚操作的相关信息,均可以表格的形式进行保存,也可以其他文本形式进行保存,本发明不限定以上两种相关信息的保存形式。

另外,本实施例中采用的是在回滚界面上设置数据输入窗口,供工作人员从该窗口内输入回滚指令的方式。在其他实施例中,也可以在回滚界面上分别设置回滚版本窗口和回滚站点窗口以及回滚提交按钮,此时回滚模块的工作过程如下:

接收工作人员触发回滚版本窗口后生成的第三菜单指令后,会调用版本列表以下拉菜单的形式在回滚界面上进行显示,供工作人员选择,接收工作人员触发所述下拉菜单中的版本号后生成的版本选择指令后,回滚模块会得知工作人员所选择的版本号;接收工作人员触发回滚站点窗口后生成的第四菜单指令后,会调用站点列表以下拉菜单的形式在回滚界面上进行显示,供工作人员选择,接收工作人员触发所述下拉菜单中的站点后生成的站点选择指令后,回滚模块会得知工作人员所选择的站点;之后接收到工作人员触发回滚提交按钮生成的回滚提交指令后,回滚模块会依据之前得知的版本号来调用发布代码数据库保存的代码信息,之后将该调用的代码信息在之前得知的站点上进行重新发布,完成回滚操作。

进一步的,上述发布代码数据库,还用于保存所述审核模块4接收的、发布未完成的代码的相关信息。

可以理解的是,这里的发布未完成的代码指的是处于发布过程中或者发布失败的代码,将审核模块4接收的处于发布中或者发布失败的代码的相关信息也进行保存,能够方便后续工作人员依据这些信息进行查看以及分析。

另外,发布代码数据库内还可保存有代码的特征信息,这些信息可以以列表的形式保存,当然也可以文本的形式保存,本发明对此不作限定。该特征信息包括各个代码的发布状态、提交时间、审核时间、发布时间、负责人。发布站点以及版本号等。当然,还可包含其他特征,用于方便用户快速了解各个代码的发布情况。以表3为例,表3为本发明提供的一种代码特征信息列表。

表3本发明提供的一种代码特征信息列表

其中,本发明中可采用django来构建代码发布工具的后台服务,django为python的一个web构架。可以采用git来标记版本以及回滚版本等。采用bootstrap来让运维人员写的网站后台ui较为专业。采用rsync来同步代码到服务器(即主站或主机)。当然,具体采用何种编写语言以及编写工具来实现本发明中的各部分内容,本发明对此不作限定。

以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。

还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1