一种基于GitlabCI落地DevOps的方法和系统技术方案

技术编号:36969023 阅读:17 留言:0更新日期:2023-03-22 19:29
本发明专利技术涉及运维管理技术领域,特别涉及一种基于Gitlab CI落地DevOps的方法和系统,包括:上传项目代码到GitLab代码仓库,发起基于Activiti工作流引擎创建的DevOps流程,审批Activiti工作流引擎指定节点,触发GitLab Pipeline triggers,开始执行GitLab CI的Pipeline流水线,并同时与Activiti工作流节点绑定,GitLab CI收到触发动作后,通知的GitLab Runner,执行.gitlab

【技术实现步骤摘要】
一种基于Gitlab CI落地DevOps的方法和系统


[0001]本专利技术涉及运维管理
,特别涉及一种基于Gitlab CI落地DevOps的方法和系统。

技术介绍

[0002]GitLab CI主要是持续编译、构建、部署/发布、测试等的持续集成工具,GitLab CI解决了手动打包部署的问题,实现了自动化打包部署的功能;但是现有技术中基于GitLab CI实现CI/CD流程处理的是提前预置好脚本文件,并且触发后,无法动态的决定CI/CD流水线的中止,以及人为在执行过程中来调整流程的走向,以确定不同流程分支。

技术实现思路

[0003]本专利技术的目的在于提供一种基于Gitlab CI落地DevOps的方法和系统,主要解决了现有技术中所提出的技术问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:
[0005]一方面,提供了一种基于Gitlab CI落地DevOps的方法,所述方法包括:
[0006]上传项目代码到GitLab代码仓库;
[0007]发起基于Activiti工作流引擎创建的DevOps流程;
[0008]审批Activiti工作流引擎指定节点,触发GitLab Pipeline triggers,开始执行GitLab CI的Pipeline流水线,并同时与Activiti工作流节点绑定;
[0009]GitLab CI收到触发动作后,通知GitLab Runner,执行.gitlab

ci.yml文件中的脚本,拉取GitLab代码仓库中的项目代码到本地;
[0010]对所述项目代码标识版本基线和静态扫描,然后自动构建生成镜像包,并推送到Docker镜像仓库;或者生成纯代码包,推送到代码版本库;
[0011]然后进行项目部署。
[0012]进一步地,所述标识版本基线包括:
[0013]将源代码归档,生成指定的Tag标签,用于标记当前项目代码版本,并通知节点任务执行状况至Activiti工作流节点,标记Activiti工作流流程,以追踪整个DevOps流程执行阶段,同时生成任务执行报告。
[0014]进一步地,所述静态扫描包括:
[0015]由SonarQube工具对标识版本基线后的所述项目代码进行扫描,检查代码漏洞、安全规范,并通知阶段任务执行状况至Activiti工作流节点,生成任务执行报告。
[0016]进一步地,所述部署前还包括单元测试,所述单元测试包括:自动扫描所述项目代码中定义的单元测试方法,生成单元测试报告,同时通知节点任务执行状态至Activiti工作流节点,生成任务执行报告。
[0017]进一步地,所述部署包括:
[0018]若是k8s容器环境,k8s容器编排引擎拉取Docker镜像仓库的镜像包完成预设副本
数量的容器创建,并由k8s容器编排引擎创建的容器编排进每一个pod对象中;
[0019]若是物理机或虚拟机环境,则备份好原有的纯代码包后,由脚本拉取纯代码包去替换原有的服务进程。
[0020]进一步地,若部署失败,则添加钩子,并通知后台Activiti工作流引擎,
[0021]处理对应流程状态,并通知相关人部署失败;
[0022]若部署成功,则进行冒烟测试、质量巡检、安全扫描、测试审核、质量发布审核和项目发布审核,生成流程报告和流出日志,并进行持续监控。
[0023]另一方面,提供了一种基于Gitlab CI落地DevOps的系统,所述系统包括:
[0024]代码上传模块:用于上传项目代码到GitLab代码仓库;
[0025]DevOps流程发起模块:用于发起基于Activiti工作流引擎创建的DevOps流程;
[0026]触发模块:用于审批Activiti工作流引擎指定节点后,触发GitLab Pipeline triggers,
[0027]执行模块:用于GitLab CI收到触发动作后,通知GitLab Runner,执行.gitlab

ci.yml文件中的脚本,拉取GitLab代码仓库中的项目代码到本地;
[0028]版本基线标识模块:用于对所述项目代码标识版本基线;
[0029]静态扫描模块:用于对标识了版本基线的所述项目代码进行扫描;
[0030]自动构建模块:用于对扫描后的所述项目代码自动构建生成镜像包,并推送到Docker镜像仓库,或者生成纯代码包,推送到代码版本库;
[0031]部署模块:用于项目部署。
[0032]进一步地,所述系统还包括:
[0033]单元测试模块:用于在部署前自动扫描所述项目代码中定义的单元测试方法,生成单元测试报告,同时通知节点任务执行状态至Activiti工作流节点,生成任务执行报告。
[0034]进一步地,所述部署模块还包括:环境识别模块:用于识别k8s容器环境和物理机或虚拟机环境。
[0035]本专利技术的有益效果是:本专利技术中基于Gitlab CI由原有指定配置的CI/CD流水线升级为由Activiti工作流引擎实现的动态可控且带有自定义审批的流水线;并且利用角色控制DevOps生命周期特定节点的审批工作,以控制DevOps生命周期的执行过程;同时支持了易操作的网页界面,从而实现DevOps生命周期的流程规范化、追踪可视化、流程分支的可控化。
附图说明
[0036]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1本专利技术实施例一提供的一种基于Gitlab CI落地DevOps的方法的交互示意图;
[0038]图2本专利技术实施例一提供的一种基于Gitlab CI落地DevOps的方法的流程图;
[0039]图3本专利技术实施例一提供的一种基于Gitlab CI落地DevOps的系统的结构示意图。
具体实施方式
[0040]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0041]本专利技术所涉及的技术术语解释:
[0042][0043][0044][0045]实施例一
[0046]一种基于Gitlab CI落地DevOps的方法,主要的就是整合Activiti工作流引擎,使得整个DevOps流程中可控化,并加入角色限制各个流程节点的安全执行,同时可自定义DevOps的流程步骤,以实现在较大的自动化部署/发布的基础上保证开发、技术运营、质量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Gitlab CI落地DevOps的方法,其特征在于,所述方法包括:上传项目代码到GitLab代码仓库;发起基于Activiti工作流引擎创建的DevOps流程;审批Activiti工作流引擎指定节点,触发GitLab Pipeline triggers,开始执行GitLab CI的Pipeline流水线,并同时与Activiti工作流节点绑定;GitLab CI收到触发动作后,通知GitLab Runner,执行.gitlab

ci.yml文件中的脚本,拉取GitLab代码仓库中的项目代码到本地;对所述项目代码标识版本基线和静态扫描,然后自动构建生成镜像包,并推送到Docker镜像仓库;或者生成纯代码包,推送到代码版本库;然后进行项目部署。2.根据权利要求1所述的一种基于Gitlab CI落地DevOps的方法,其特征在于,所述标识版本基线包括:将源代码归档,生成指定的Tag标签,用于标记当前项目代码版本,并通知节点任务执行状况至Activiti工作流节点,标记Activiti工作流流程,以追踪整个DevOps流程执行阶段,同时生成任务执行报告。3.根据权利要求1所述的一种基于Gitlab CI落地DevOps的方法,其特征在于,所述静态扫描包括:由SonarQube工具对标识版本基线后的所述项目代码进行扫描,检查代码漏洞、安全规范,并通知阶段任务执行状况至Activiti工作流节点,生成任务执行报告。4.根据权利要求1所述的一种基于Gitlab CI落地DevOps的方法,其特征在于,所述部署前还包括单元测试,所述单元测试包括:自动扫描所述项目代码中定义的单元测试方法,生成单元测试报告,同时通知节点任务执行状态至Activiti工作流节点,生成任务执行报告。5.根据权利要求1所述的一种基于Gitlab CI落地DevOps的方法,其特征在于,所述部署包括:若是k8s容器环境,k8s容器编排引擎拉取Docker镜像仓库的镜像包完成预设副本数量...

【专利技术属性】
技术研发人员:李彬张超温冬
申请(专利权)人:西安华讯科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1