CN110297627A - 一种基于gitlab-ci的前端代码自动化持续集成方法 - Google Patents

一种基于gitlab-ci的前端代码自动化持续集成方法 Download PDF

Info

Publication number
CN110297627A
CN110297627A CN201910584966.7A CN201910584966A CN110297627A CN 110297627 A CN110297627 A CN 110297627A CN 201910584966 A CN201910584966 A CN 201910584966A CN 110297627 A CN110297627 A CN 110297627A
Authority
CN
China
Prior art keywords
gitlab
code
runner
continuous integrating
yml
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
CN201910584966.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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201910584966.7A priority Critical patent/CN110297627A/zh
Publication of CN110297627A publication Critical patent/CN110297627A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于gitlab‑ci的前端代码自动化持续集成方法,包括通过在代码提交到git服务器后,自动检测代码中的语法问题,自动构建项目,并部署在docker容器上。本发明的方法可以省去较多繁琐的操作,实现代码提交后即可实现部署发布,简化了开发人员繁琐的代码部署发布过程,有效提高了开发人员的效率。

Description

一种基于gitlab-ci的前端代码自动化持续集成方法
技术领域
本发明涉及网络开发技术领域,特别涉及一种基于gitlab-ci的前端代码自动化持续集成方法。
背景技术
随着前端技术的迅猛发展,前后分离已经是一个大趋势,现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪。前端自动化构建在整个项目开发中越来越重要。项目开始时会考虑各种前端框架react vue angular等,然后就是用webpack搭建项目开发架构。开发完后我们会将webpack编译后的文件部署到服务器上。不仅仅是通过webpack实现的自动化构建,当项目提交的时候,同时也要实现其自动化的部署、发布工作。经过多次开发实践,目前我们的项目采用docker+node+eslint+nginx实现前端代码自动化的检测,编译与部署,这样大大的简化了项目代码检测,部署,发布等问题,极大的提高了开发效率。
发明内容
本发明的目的是基于上述背景技术,提供一种基于gitlab-ci的前端代码自动化持续集成方法,解决在网络开发技术领域,前端人员开发代码的自动化静态检测、编译、部署、发布等问题,通过本发明的方法,实现了前端代码的自动化持续集成,有效提高了开发人员的效率,且使用范围较广。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于gitlab-ci的前端代码自动化持续集成方法,包括以下步骤:
A.创建一个包含代码静态检测工具eslint的docker容器,配置gitlab-runner;
B.通过gitlab部署git服务器;其中,所有开发代码通过git进行版本管理,并为不同的开发人员建立独立的分支,各开发人员提交代码到自己的分支上;
C.编写.gitlab-ci.yml脚本,在.gitlab-ci.yml中设置当有分支合并到主分支时执行该脚本;
D.新分支代码合并到主分支后自动执行gitlab-ci.yml脚本,通过eslint自动进行代码静态检测,代码静态检测通过后自动构建项目,且构建完成后自动部署项目到服务器上。
进一步地,所述步骤A具体包括:
A1.创建一个包含代码静态检测工具eslint的docker容器,安装node,配置runner服务器;
A2.创建gitlab项目,安装gitlab-runner;
A3.注册gitlab-runner,进入docker容器。
进一步地,所述步骤A3中在进入docker容器后,需要输入该gitlab的URL和token信息,且注册完成后会在gitlab-ci上看到该runner的信息,当该runner为绿色代表该runner是正常状态。
进一步地,所述步骤C中编写.gitlab-ci.yml脚本时具体包括以下三个顺序执行的步骤:静态代码的监测、代码打包、代码部署,三个步骤中,前一个步骤如果出错后面的步骤不会执行,即代码静态检测通过后,才会执行后面的打包,打包完成后,才会执行代码部署操作。
本发明与现有技术相比,具有以下的有益效果:
本发明的基于gitlab-ci的前端代码自动化持续集成方法,相较传统的代码开发及发布模式(开发人员提交自己的模块代码;主开发人员合并代码,本地构建代码,然后压缩;将压缩后的代码上传到服务器上相应目录,解压;重启服务),通过代码自动化持续集成方法,可以省去较多繁琐的操作,实现代码提交后即可实现部署发布,简化了开发人员繁琐的代码部署发布过程,有效提高了开发人员的效率。
附图说明
图1是本发明的基于gitlab-ci的前端代码自动化持续集成方法的流程示意图。
图2是本发明的基于gitlab-ci的前端代码自动化持续集成方法的应用流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1及图2所示,一种基于gitlab-ci的前端代码自动化持续集成方法,包括以下步骤:
步骤1.创建一个包含代码静态检测工具eslint的docker容器,配置gitlab-runner。
具体包括:
步骤1.1.创建一个包含代码静态检测工具eslint的docker容器,安装node,配置runner服务器;
步骤1.2.创建gitlab项目,安装gitlab-runner;
步骤1.3.注册gitlab-runner,进入docker容器。
作为优选,本实施例中,所述步骤1.3中在进入docker容器后,需要输入该gitlab的URL和token信息,且注册完成后会在gitlab-ci上看到该runner的信息,当该runner为绿色代表该runner是正常状态。
步骤2.通过gitlab部署git服务器;其中,所有开发代码通过git进行版本管理,并为不同的开发人员建立独立的分支,各开发人员提交代码到自己的分支上。
步骤3.编写.gitlab-ci.yml脚本,在.gitlab-ci.yml中设置当有分支合并到主分支时执行该脚本。
具体的,编写.gitlab-ci.yml脚本时具体包括以下三个顺序执行的步骤:静态代码的监测、代码打包、代码部署,三个步骤中,前一个步骤如果出错后面的步骤不会执行,即代码静态检测通过后,才会执行后面的打包,打包完成后,才会执行代码部署操作。
步骤4.新分支代码通过主程序员合并到主分支后自动执行gitlab-ci.yml脚本,通过eslint自动进行代码静态检测,代码静态检测通过后自动构建项目,且构建完成后自动部署项目到服务器上。
综上可知,本发明的基于gitlab-ci的前端代码自动化持续集成方法,是一种高效的项目持续集成方法。通过在代码提交到git服务器后,自动检测代码中的语法问题,自动构建项目,并部署在docker容器上。相较传统的代码开发及发布模式(开发人员提交自己的模块代码;主开发人员合并代码,本地构建代码,然后压缩;将压缩后的代码上传到服务器上相应目录,解压;重启服务),通过代码自动化持续集成方法,可以省去较多繁琐的操作,实现代码提交后即可实现部署发布,简化了开发人员繁琐的代码部署发布过程,有效提高了开发人员的效率。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (4)

1.一种基于gitlab-ci的前端代码自动化持续集成方法,其特征在于,包括以下步骤:
A.创建一个包含代码静态检测工具eslint的docker容器,配置gitlab-runner;
B.通过gitlab部署git服务器;其中,所有开发代码通过git进行版本管理,并为不同的开发人员建立独立的分支,各开发人员提交代码到自己的分支上;
C.编写.gitlab-ci.yml脚本,在.gitlab-ci.yml中设置当有分支合并到主分支时执行该脚本;
D.新分支代码合并到主分支后自动执行gitlab-ci.yml脚本,通过eslint自动进行代码静态检测,代码静态检测通过后自动构建项目,且构建完成后自动部署项目到服务器上。
2.根据权利要求1所述的一种基于gitlab-ci的前端代码自动化持续集成方法,其特征在于,所述步骤A具体包括:
A1.创建一个包含代码静态检测工具eslint的docker容器,安装node,配置runner服务器;
A2.创建gitlab项目,安装gitlab-runner;
A3.注册gitlab-runner,进入docker容器。
3.根据权利要求2所述的一种基于gitlab-ci的前端代码自动化持续集成方法,其特征在于,所述步骤A3中在进入docker容器后,需要输入该gitlab的URL和token信息,且注册完成后会在gitlab-ci上看到该runner的信息,当该runner为绿色代表该runner是正常状态。
4.根据权利要求1至3中任一所述的一种基于gitlab-ci的前端代码自动化持续集成方法,其特征在于,所述步骤C中编写.gitlab-ci.yml脚本时具体包括以下三个顺序执行的步骤:静态代码的监测、代码打包、代码部署。
CN201910584966.7A 2019-07-01 2019-07-01 一种基于gitlab-ci的前端代码自动化持续集成方法 Pending CN110297627A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910584966.7A CN110297627A (zh) 2019-07-01 2019-07-01 一种基于gitlab-ci的前端代码自动化持续集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910584966.7A CN110297627A (zh) 2019-07-01 2019-07-01 一种基于gitlab-ci的前端代码自动化持续集成方法

Publications (1)

Publication Number Publication Date
CN110297627A true CN110297627A (zh) 2019-10-01

Family

ID=68029722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910584966.7A Pending CN110297627A (zh) 2019-07-01 2019-07-01 一种基于gitlab-ci的前端代码自动化持续集成方法

Country Status (1)

Country Link
CN (1) CN110297627A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209010A (zh) * 2019-12-27 2020-05-29 天阳宏业科技股份有限公司 一种平台及其实现方法
CN111562942A (zh) * 2020-04-30 2020-08-21 中国银行股份有限公司 基于Gitlab的移动APP持续集成装置和方法
CN111736849A (zh) * 2020-06-24 2020-10-02 浪潮电子信息产业股份有限公司 一种源代码编译方法及系统
CN112506613A (zh) * 2020-12-11 2021-03-16 四川长虹电器股份有限公司 Gitlab-ci自动识别Maven变更子模块并推送docker镜像的方法
CN112527376A (zh) * 2020-11-20 2021-03-19 浪潮软件科技有限公司 基于反向代理服务实现DevOps自动化的方法
CN112947907A (zh) * 2020-03-23 2021-06-11 深圳市明源云科技有限公司 一种创建代码分支的方法
CN113703783A (zh) * 2021-08-02 2021-11-26 浪潮天元通信信息系统有限公司 一种边缘计算系统前端工程持续集成和自动化部署的方法
CN114253598A (zh) * 2021-12-22 2022-03-29 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114968344A (zh) * 2022-07-28 2022-08-30 南京安元科技有限公司 一种基于Gitlab CI的微前端构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874650A (zh) * 2017-05-09 2018-11-23 上海秦苍信息科技有限公司 一种持续集成自动化测试方法
CN109101680A (zh) * 2018-06-26 2018-12-28 天津飞腾信息技术有限公司 基于GitLab-CI的FPGA原型自动验证方法及系统
CN109344080A (zh) * 2018-10-31 2019-02-15 江苏电力信息技术有限公司 持续交付与自动化测试一体化集成的软件质量保障方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874650A (zh) * 2017-05-09 2018-11-23 上海秦苍信息科技有限公司 一种持续集成自动化测试方法
CN109101680A (zh) * 2018-06-26 2018-12-28 天津飞腾信息技术有限公司 基于GitLab-CI的FPGA原型自动验证方法及系统
CN109344080A (zh) * 2018-10-31 2019-02-15 江苏电力信息技术有限公司 持续交付与自动化测试一体化集成的软件质量保障方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
KARL TAYLOR: ""Getting started with Gitlab CI/CD: Eslint"", 《HTTPS://DEV.TO/KARLTAYLOR/GETTING-STARTED-WITH-GITLAB-CICD-ESLINT-1M80》 *
刘梅: ""基于docker的持续集成及发布平台的设计与实现"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
大萌糖: ""Gitlab CI/CD"", 《HTTPS://WWW.HAOMEIWEN.COM/SUBJECT/IEHXWQTX.HTML》 *
许许盛: ""使用Docker部署GitLab CI Runner"", 《HTTPS://BLOG.CSDN.NET/XS20691718/ARTICLE/DETAILS/89361881》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209010A (zh) * 2019-12-27 2020-05-29 天阳宏业科技股份有限公司 一种平台及其实现方法
CN112947907A (zh) * 2020-03-23 2021-06-11 深圳市明源云科技有限公司 一种创建代码分支的方法
CN112947907B (zh) * 2020-03-23 2024-03-12 深圳市明源云科技有限公司 一种创建代码分支的方法
CN111562942A (zh) * 2020-04-30 2020-08-21 中国银行股份有限公司 基于Gitlab的移动APP持续集成装置和方法
CN111562942B (zh) * 2020-04-30 2024-04-19 中国银行股份有限公司 基于Gitlab的移动APP持续集成装置和方法
CN111736849A (zh) * 2020-06-24 2020-10-02 浪潮电子信息产业股份有限公司 一种源代码编译方法及系统
CN112527376B (zh) * 2020-11-20 2023-07-18 浪潮软件科技有限公司 基于反向代理服务实现DevOps自动化的方法
CN112527376A (zh) * 2020-11-20 2021-03-19 浪潮软件科技有限公司 基于反向代理服务实现DevOps自动化的方法
CN112506613A (zh) * 2020-12-11 2021-03-16 四川长虹电器股份有限公司 Gitlab-ci自动识别Maven变更子模块并推送docker镜像的方法
CN113703783A (zh) * 2021-08-02 2021-11-26 浪潮天元通信信息系统有限公司 一种边缘计算系统前端工程持续集成和自动化部署的方法
CN114253598B (zh) * 2021-12-22 2023-09-05 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114253598A (zh) * 2021-12-22 2022-03-29 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114968344A (zh) * 2022-07-28 2022-08-30 南京安元科技有限公司 一种基于Gitlab CI的微前端构建方法

Similar Documents

Publication Publication Date Title
CN110297627A (zh) 一种基于gitlab-ci的前端代码自动化持续集成方法
AU2019210601B2 (en) Automatic generation of microservices based on technical description of legacy code
CN106250178B (zh) 通过多语言云编译实现系统动态功能在线拦截扩展的方法
US8239340B2 (en) Message conduit systems with algorithmic data stream control and methods for processing thereof
EP2228726B1 (en) A method and system for task modeling of mobile phone applications
CN106293863B (zh) 多语言云编译实现系统功能动态扩展替换的方法及系统
CN107908394B (zh) 一种数据交换格式化源代码生成方法及装置
CN106293808A (zh) 多语言云编译实现系统功能动态拦截扩展的方法及系统
CN107357593A (zh) 源代码文件组建方法、装置、电子终端及可读存储介质
US10761972B2 (en) Method and system for recording and debugging process flows
US20080250071A1 (en) Systems and methods for business applications
CN109783195A (zh) 一种基于容器的智能合约实时调试方法
CN106354492A (zh) 一种快速调整交易流程对接的自动化代码生成方法及系统
CN109697050A (zh) 一种基于知识图谱面向电商领域的需求描述模型设计方法
CN106250179A (zh) 通过多语言云编译实现系统动态功能拦截扩展的方法
CN102131308A (zh) PC端操作Android手机文件系统的方法
CN109426602A (zh) 一种应用开发过程中使用的检测方法及设备
CN112988165A (zh) 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质
CN113590094A (zh) 基于Flink的一站式任务开发、部署、运维平台系统、方法、装置、存储器及存储介质
Barua et al. Mobile Applications Development: With Python in Kivy Framework
CN109684779A (zh) 一种基于视图的仿真模型装配方法
CN109933308A (zh) 基于mpi+cuda的遥感卫星数据预处理流程可视化自定制通用系统
CN100359466C (zh) 工具命令语言集成开发系统
CN115373642A (zh) 一种基于低代码生成脚手架的快速开发平台搭建方法
CN115951970A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191001

RJ01 Rejection of invention patent application after publication