【从零开始学极狐gitlab】05CICD简介 #JIHULAB101

1、介绍

极狐gitlab是一个开箱即用的一站式devops平台,通过流水线的形式完成应用的构建、测试和发布。下图是官方推荐的一套cicd流程。
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第1张图片
这一套流程的配置是在项目根目录的.gitlab-ci.yml文件中定义,运行需要Runner。SaaS版提供免费的共享Runner,自己部署Runner可以参考裸机部署和云原生部署

2、与jenkins对比

jenkins是一款非常优秀的持续集成工具、功能强大插件众多。
版本管理工具(如gitlab、gitee、gitblit、github等)+持续集成工具(如jenkins)也可以实现CICD过程。

我公司目前的cicd是极狐gitlab+jenkins,下面根据实际遇到的问题列举出极狐gitlab CICD的优点(ps:极狐gitlab的CICD我正处于学习阶段,没有投入生产,所以暂时没总结出缺点)

1–减少维护工作

最直观的就是可以少维护一个工具,不需要再考虑升级、备份、迁移等问题

2–相似项目的新建

比如公司需要基于现有的订单系统开发另一套订单系统时,
当前的工作量:克隆gitlab项目、克隆jenkins项目,配置jenkins上的git地址,配置jenkins上的webhooks令牌(用于提交代码时触发构建)。
如果使用gitlab的cicd:只需要克隆一份gitlab项目即可(cicd的配置在.gitlab-ci.yaml文件中会被一同克隆)

3–配置的版本管理

jenkins如果使用freestyle风格的项目,修改配置没有历史记录,缺少追溯能力

3、“.gitlab-ci.yml”介绍

.gitlab-ci.yml文件定义了整个的cicd流程

1–新建

进入新建的测试项目(新建项目参考这里),依次点击左侧“CI/CD”——“编辑器”——“配置流水线”(如果不是新项目注意分支选择)
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第2张图片
默认填充了一个模板,先不用看具体内容,通过这个模板可以看出它是一个yaml格式的文件:精确检查空格数量和缩进,#作为注释符,yml的语法可以参考这篇文章

2–文件结构

流水线一级分类为阶段(stage)二级分类为作业(job)

点击“可视化”可以直观查看:这个配置文件定义了流水线共包含Build、Test、Deploy三个阶段,Test阶段包含两个作业,其它阶段包含一个作业
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第3张图片
通过与可视化的对比分析文件的构成:
①开头通过stages关键字定义了流水线分为几个阶段
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第4张图片
②其它部分直接写job名称,job内用stage关键字指定了属于哪个阶段、script关键字指定了job具体执行哪些指令
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第5张图片

4、第一个流水线

点击提交后会触发流水线运行
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第6张图片
提交后点击上方查看流水线
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第7张图片
可以看出job是按照stage定义顺序先后执行
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第8张图片
点击job查看控制台输出,可以看出job执行了script关键字中定义的指令
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第9张图片

5、指定runner

前面文章写了各种方法部署runner,总要把它用一下吧。
查看已运行pipeline的任意一个job输出可以看到,使用的是SaaS提供的共享runner
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第10张图片
使用tag关键字
job只会匹配含指定tag的runner,如果没有则等待

deploy-job:
  tags:
    - linux

注意yaml格式
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第11张图片

修改后查看编辑器上方,如果是这个标志表示语法没问题
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第12张图片
提交更改后查看deploy-job的输出
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第13张图片
可以看到使用了我自己的runner,因为我有一个runner含有“linux”的标签
【从零开始学极狐gitlab】05CICD简介 #JIHULAB101_第14张图片
以上使用tag关键字指定了使用哪些runner。极狐gitlab的cicd中还有很多关键字,后续会做演示。

你可能感兴趣的:(极狐gitlab,jenkins,devops,git)