CN110297627A - 一种基于gitlab-ci的前端代码自动化持续集成方法 - Google Patents
一种基于gitlab-ci的前端代码自动化持续集成方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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的前端代码自动化持续集成方法。
背景技术
随着前端技术的迅猛发展,前后分离已经是一个大趋势,现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪。前端自动化构建在整个项目开发中越来越重要。项目开始时会考虑各种前端框架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脚本时具体包括以下三个顺序执行的步骤:静态代码的监测、代码打包、代码部署。
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)
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)
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 | 江苏电力信息技术有限公司 | 持续交付与自动化测试一体化集成的软件质量保障方法 |
-
2019
- 2019-07-01 CN CN201910584966.7A patent/CN110297627A/zh active Pending
Patent Citations (3)
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)
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)
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 |