前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >gitlab 持续集成CI/CD

gitlab 持续集成CI/CD

作者头像
py3study
发布于 2018-08-02 07:49:54
发布于 2018-08-02 07:49:54
8350
举报
文章被收录于专栏:python3python3

一、持续集成(Continuous Integration)

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

看完这段话,估计还是有点懵。怎么理解呢?我是这样理解的:

软件集成是软件开发过程中的一个环节,这个环节的工作一般会包括以下流程:合并代码---->安装依赖---->编译---->测试---->发布。软件集成的工作一般会比较细碎繁琐,为了不影响开发效率,以前软件集成这个环节一般不会经常进行或者只会等到项目后期再进行。但是有些问题,如果等到后期才发现,解决问题的代价很大,有可能导致项目延期或者失败。因此,为了尽早发现软件集成错误,鼓励团队成员应该经常集成他们的工作,通常每个成员每天应该至少集成一次。这就是所说的持续集成。所以说,持续集成是一种软件开发实践。

软件集成的工作细碎繁琐,以前是由人工完成的。但是现在鼓励持续集成,那岂不是要累死人,还影响开发效率。所以,应该考虑将软件集成这个工作自动化,这就出现了所谓的持续集成系统。

二、GitLab-CI

GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。

三、GitLab-Runner

那GitLab-Runner又是什么东东呢?与GitLab-CI有什么关系呢?

GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。

所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本。如下图所示:

GitLab-CI与GitLab-Runner关系示意图

Runner可以分布在不同的主机上,同一个主机上也可以有多个Runner。

Runner类型

GitLab-Runner可以分类两种类型:Shared Runner(共享型)和Specific Runner(指定型)。

Shared Runner:这种Runner(工人)是所有工程都能够用的。只有系统管理员能够创建Shared Runner。

Specific Runner:这种Runner(工人)只能为指定的工程服务。拥有该工程访问权限的人都能够为该工程创建Shared Runner。

CI/CD  持续交付/持续部署

持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

按照我的理解,每个项目里面定义了.gitlab-ci.yml(CI脚本)

每一次代码提交更改,都会触发CI

CI里面定义的任务,任务由Runner来完成

Runner执行这些shell命令,需要由docker来完成

注意:docker镜像必须要安装指定的命令,才能执行脚本。比如rsync

gitlab的安装,请参考链接

https://cloud.tencent.com/developer/article/1174872

下一篇文章,我来介绍一下gitlab-ci.yml脚本如和编写

https://cloud.tencent.com/developer/article/1175082

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/02/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Gitlab CI 搭建持续集成环境
在软件工程里,持续集成(Continuous Integration, CI)是指这样的一种实践:在一天里多次将所有开发人员的代码合并到一个共享的主干里,每次合并都会触发持续集成服务器进行自动构建,这个过程包括了编译、单元测试、集成测试、质量分析等步骤,结果只有两个:成功或者失败。如果得到失败的结果,说明有人提交了不合格的代码,这就能及时发现问题。
YP小站
2020/06/04
2.7K0
Gitlab CI 搭建持续集成环境
那些年不加班的开发团队的秘密,原因竟是因为持续集成!
持续集成,让很多开发团队又 「 爱 」 又 「 恨 」 。爱,在于整个流程对项目的交付价值大有裨益,尽最大可能地减少不必要的加班;恨,在于成本过大,部署的困难、工程文化的隔阂。 首先看下,持续集成,
架构师小秘圈
2018/04/02
2.1K0
那些年不加班的开发团队的秘密,原因竟是因为持续集成!
用Gitlab玩CI/CD
持续集成(CONTINUOUS INTEGRATION)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
李俊鹏
2021/02/23
1.4K0
用Gitlab玩CI/CD
基于 Gitlab 从零开始搭建自己的持续集成流水线(Pipeline)
持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。
DevOps时代
2019/05/17
17.4K0
基于 Gitlab 从零开始搭建自己的持续集成流水线(Pipeline)
依托于GitLab持续集成基础配置和使用
[TOC] 0x00 前言简述 Q:我们常说的CI/CD是什么? CI 为 Continuous Integration 的缩写持续集成,可以理解为代码变动提交后,自动执行代码编译、代码打包、代码测试
全栈工程师修炼指南
2020/10/23
2K0
依托于GitLab持续集成基础配置和使用
1.基于GitLab代码仓库的持续集成基础配置和使用
[TOC] 0x00 前言简述 CI/CD介绍 Q:我们常说的CI/CD是什么? CI 为 Continuous Integration 的缩写持续集成,可以理解为代码变动提交后,自动执行代码编译、代
全栈工程师修炼指南
2022/09/29
3.7K0
1.基于GitLab代码仓库的持续集成基础配置和使用
Gitlab-CICD最简单明了的入门教程
由于目前公司使用的gitlab,大部分项目使用的CICD是gitlab的CICD,少部分用的是jenkins,使用了gitlab-ci一段时间后感觉还不错,因此总结一下
全栈程序员站长
2022/09/07
6.1K0
Gitlab-CICD最简单明了的入门教程
Gitlab--CI
​ GitLab-Runner 是配合 GitLab-CI 进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人 push 了代码,GitLab 就会将这个变动通知 GitLab-CI。这时 GitLab-CI 会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
奋飛
2019/08/14
9490
微服务项目部署实践:使用Gitlab Runner实现微服务项目的持续集成,持续交付和持续部署
概念 服务治理遇到的问题 在微服务项目中每个服务都是独立运行的项目 不可能对每个项目进行手动部署,涉及到自动化运维的问题 持续集成 持续集成(Continues Integration,简称CI) 持续集成指的是,频繁(一天多次)地将代码集成到主干,优点有两个: 快速发现错误: 每完成一点更新, 就集成到主干,可以快速发现错误,定位错误 防止分支大幅偏离主题: 如果不是经常集成,主干又在不断更新,会导致以后集成难度变大,甚至难以集成 持续集成强调:开发人员提交了新的代码之后,立即进行构建,(单元)测试,
攻城狮Chova
2022/01/22
1.4K0
微服务项目部署实践:使用Gitlab Runner实现微服务项目的持续集成,持续交付和持续部署
Ubuntu上如何使用GitLab CI搭建持续集成Pipeline
GitLab Community Edition是一个自托管的Git存储库提供程序,具有帮助项目管理和软件开发的附加功能。GitLab提供的最有价值的功能之一是内置的持续集成和交付工具GitLab CI。
爆栈工程师
2018/08/13
3.9K0
Ubuntu上如何使用GitLab CI搭建持续集成Pipeline
I-team博客的gitlab-runner持续集成实践
做为一个略微看过nodejs语法,但又不懂nodejs的攻城狮,搭建hexo环境很是麻烦,要考虑到翻墙、版本兼容等问题。于是乎,博主每换一个电脑,为了能继续发博客,都需要在新电脑上花一天时间重新搞一下 hexo 环境,楼主感觉还是有简洁的方案来实现我一提交代码就可以自动发布博客,不需要再手动操作一波,这样岂不美哉。so,也就有了今天的经历,代码可以持续集成,博客也可以。楼主的解决方案是使用gitlab与gitlab-runner实现博客部署的持续集成,效果真的不要太好。
haifeiWu
2018/09/11
1.1K0
I-team博客的gitlab-runner持续集成实践
【git】CI/CD持续集成与部署C++示例
CI/CD(持续集成/持续交付)是一种软件开发实践和方法论,旨在通过自动化和持续性地集成、构建、测试和交付软件来提高开发团队的效率和软件质量。它的目标是使软件开发流程更加敏捷、可靠和可持续。
DevFrank
2024/07/24
4420
什么是CI/CD
大家好,我是洋子。CI/CD这个词大家或多或少都听过,甚至在进行软件测试面试时经常会进行考察
Bug挖掘机
2022/09/28
5K0
什么是CI/CD
通过 Gitlab CI 完成前端自动化构建
​ GitLab-Runner 是配合 GitLab-CI 进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人 push 了代码,GitLab 就会将这个变动通知 GitLab-CI。这时 GitLab-CI 会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
奋飛
2021/08/30
1.1K0
通过 Gitlab CI 完成前端自动化构建
Git——Docker搭建GitLab&简单的Runner配置
GitLab是一个开源的用于仓库管理的项目,和GitHub一样是使用Git作为代码管理工具。
不愿意做鱼的小鲸鱼
2022/09/26
2.1K0
Git——Docker搭建GitLab&简单的Runner配置
GitLab 内置了一个强大的 CI/CD 系统
GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:
用户8639654
2021/08/10
1.1K0
GitLab CI + Docker 持续集成操作手册
在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后在项目即将结束进行时,而这往往会花费大量的时间和精力。而持续集成是一种将集成阶段放在软件开发阶段的做法,以便更加有规律地构建,测试和集成代码。
蒋老湿
2020/07/31
1.1K0
GitLab CI + Docker 持续集成操作手册
GitLabCICD实践简介
开发团队在开发环境中完成软件开发,单元测试,测试通过,提交到代码版本管理库。运维团队把应用部署到测试环境,供QA团队测试,测试通过后部署生产环境。QA 团队 进行测试,测试通过后通知部署人员发布到生产环境。
DevOps云学堂
2020/05/08
4.7K0
GitLabCICD实践简介
用 GitLab 做 CI/CD 是什么感觉,太强了
GitLab CI/CD 是一个内置在 GitLab 中的工具,用于通过持续方法进行软件开发:
子润先生
2021/06/18
2.6K0
用 GitLab 做 CI/CD 是什么感觉,太强了!!
来源丨 www.cnblogs.com/cjsblog/p/12256843.html
xcbeyond
2020/08/21
10.2K0
用 GitLab 做 CI/CD 是什么感觉,太强了!!
推荐阅读
相关推荐
Gitlab CI 搭建持续集成环境
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文