博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GitLab-CI持续集成(CI)的介绍与运行机制
阅读量:7104 次
发布时间:2019-06-28

本文共 1326 字,大约阅读时间需要 4 分钟。

 GitLab持续集成(CI)的介绍与运行机制

GitLab-CI

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

首先要明白它的组成. 它有两个东西来支撑:

  1. gitlab-ci server
  2. gitlab-ci-runner

gitlab-ci server负责调度、触发Runner,以及获取返回结果.

而gitlab-ci-runner则是主要负责来跑自动化CI的一个宿主机子.

那么我们总结一下流程,其实是这个样子的:

 

GitLab-Runner

GitLab 8.0+提供了持续集成的功能,在GitLab中有个Runners的概念。runner可以想象成一个守护进程,来守护你注册好的servicegitlab-ci绑定. 一个宿主机里的runner可以维护多个不同的service. gitlab-ci在收到需要build的请求时,会通知service执行你在.gitlab-ci.yml里面指定好的脚本,然后根据命令行的返回结果来决定这次build的成功还是失败.

在了解完了这些概念以后我们就可以很轻松的搭建一个runner.

 

Runner一共有三种类型

1) 本地Runner

2) 普通的服务器上的Runner

3) 基于DockerRunner

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

Runner类型

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

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

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

 

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-CD流程图

 

 

 

   

 

 

 

你可能感兴趣的文章
Groovy里面闭包中变量符号的查找与变量定义的限制
查看>>
js命名
查看>>
activity 与 Fragment生命周期的理解
查看>>
前端程序员应该知道的 15 个 jQuery 小技巧
查看>>
linux调度功能crontab
查看>>
【Jquery】插件之fancybox
查看>>
vue day4 table
查看>>
制作H5响应式页面注意事项、微信二次分享
查看>>
C#decimal四舍五入格式化
查看>>
[Python3网络爬虫开发实战] 5.2-关系型数据库存储
查看>>
详解Objective-C的meta-class
查看>>
VScode格式化vue文件
查看>>
codevs1914 运输问题
查看>>
几个较好的SQL速查手册网址
查看>>
电梯算法大概
查看>>
BarChart控件的使用
查看>>
pads快捷键
查看>>
删除DataTable中除指定行以外的行
查看>>
在Eclipse中使用JUnit4进行单元测试(高级篇)
查看>>
upc组队赛7 Star in Parentheses
查看>>