00:00
我是飞子,这是我的第三个视频,Get内系列的第三个视频啊前嗯,第一个视频的话,我们讲解了如何在服务器上安装一个get内,然后第二个视频的话,我们讲述了一个get内runner的一个安装,以及它的注册,好,那我们第三个第三个视频的话,这个这个系列的第三个视频,那我们就讲解一下这个点get内杠C点文件,它里边的这个编写,它的具体的内容的编写啊,那首先呢,为什么要讲这里呢?首先它这个get label round get label c scd,它有两大要素,首先是呃,CCD的一个执行环境叫做get round,你有了这个环境,你这个流水线啊,这个任务才能跑起来。然后你跑起来,但是你没有内容,你也你也是跑不起来,只有环境没有内容是跑不起来的,那它的内容的话,就是在这个文件里面定义的,叫做点get label-C的样文件,它在这个文件里面定义的好,那我们上一边就安装了一个get label runner,然后可以正常使用了,那我们这一篇的话就介绍一下gile-CN样文件的一个编写啊。
01:22
看一下,可以先看一下效果。嗯,这个还是我们的这个啊,这个gila,我们第一个视频搭建的这个getlab,好,那这个点给内B-C样目文件是在哪里呢?就是在项目的根目录下面,一般的话我们都是放在项目的根目录下面,注意一下它这个文件的话,前面有一个点啊,点2GI lab-CI点文件,大家一定不要写错了,点这里也可以直接到达这个文件啊,我们点这里看一下。好,这个文件的话,只有只有三行代码,嗯,好,那它这个文件编写完之后,它会到这里去生成一条流水线,就是这里它会执行一条流水线,如果你有可用的runner,它就会这样子去操作,好那它的基本基本的流程就是这样子,那我们看一下这个给内部,它这个文件到底是要怎样去编写呢?啊这里关这里首先我们看一下这个官方的这个文档啊,官方的文档的话都是英文档,嗯。
02:37
首先呢,首先这个点lab-cir文件,它里边有很多任务关键词,这些任务关键词,每一个关键词都有自己特殊的含义,它有自己的描述啊,对吧啊就就拿这个来说啊,这个catch缓存啊,这个就是把一个把一些文件列表保存到一个缓存到里边,在各个任务。
03:09
之间进行互相传递对吧,那就是这个缓存嘛,这个就是缓存关键词的关关键词的作用,对吧?再比如说啊,比如说这个image image use docker images,就是使用一个docker镜,Docker镜像啊行,那我们就啊这个行,它的它大致内容就是这样子,首先呢,再给大家说一下这个点,Name CA的基本关键词大概有这些啊,基本关键词大概有这些啊。这些scale afterk or filter fight before s catch cover,这些关键词每个都有自己的用处,然后的话大概有28个吧,28个,但我但是我们常用的话,它只有十几个啊,甚至十个都不到啊,所以说掌握这十个十个关键词,你就能写好一个很好的一个流水线了,这里啊,我我的文档里边,我的那个博客里边有这个点,Label关键词的一个完整解析,都是一个跟着官方文档对照着啊进行,有一部分是翻译的,有一部分是增加了自己的一些案例解析啊这些。
04:33
好,行,那我们今天的话就先介绍这几个关键词啊,那一共有28个关键词,我们就先介绍这几个关键词啊,Stagesk stage written only啊,这几个关键词使用起来还是还是比较简单的,嗯,学习完之后你就可以编写一个很简单很简单的一个流水线,嗯,好,那我们直接进入主题,好,然后我们进入这个项目里边。
05:08
进入这个项目里边。然后点编辑,直接在这里边编辑。嗯,首先说一下啊,他的这个流水线。流水线的内容,它它有个我之前有介绍过啊,有一个stages,有一个job stages是定义这个流水线的一个阶段,流水线的阶段这三个是从上到下包含关系。Study阶段是是它的定义流水线的一个阶段,然后教补,就是每一个具体执行的叫补,但是这个流水线的话,它并不是每一个大一个,每一个教普都是需要定义的,它有些都是有有默认的,嗯,对吧,有默认的,我们可以看一下它的这个官方文档,官方文档这里边也也是有写的啊,我们看一下哈,我们找到它的star。
06:10
这里定义任务的status。看到没有,使用star可以定义这个任务是是在哪一个定义这个任务是属于哪一个阶段里面的任务,如果有一个相同的阶段的话,那就会并发的去执行它,嗯,然后这个stars官方是有提供这几个的,默认的是有这几个啊。那我们直接可以直接使用这这几个来来写一个流水线。好,那我们直接定一个加加步一啊加V1,然后具体的内容,然后STSTS。啊,叫什么。对吧。
07:00
啊,这里的话,我们就使用这个。构建CT。这里就是写我们的这个脚本。啊,就这样子的,当然了,这里的话你也可以不写,这是如果不写的话,那你这里是最简单的,我们试一下它不写这里,好,这个就是一个最简单,最简单的一个任务,不能再少了,因为你每一个任务的话都要有一个任务名,这个K是每一个任务必须要有的一个内容。嗯,好吧。那我们提交一下,看一下他。是怎样去执行的?啊,这里提交完之后,他会他会告诉你。这个CI配置是已经被验证通过了的,你已经成功的提交了这个东,提交了这个东西,好,那我们到CCD里面来看一下这个东西,哦,已经运行成功了,就是我们刚刚提交的这个东西,你看这个只花了五秒钟。
08:15
进行这个C这里我们就可以看到test哦,这里默认的话,它的阶段是叫做test,如果我们没有给他指定这个,指定这个starts的话,它的默认是task的阶段啊看一下这就是这个任务执行的一个日志,这个日志的话,后面我们会单独抽一章节进行详细的介绍,它这里边的一些日志怎样,它的执行顺序啊,它的怎样去构建,在哪里构建,怎样去看它的日志去进行排查,对吧?这里我们先不做过多的介绍,因为后面我们会单独开一张,嗯,好,那我们这里就简单的写了一个非常简单的一个任务啊,就这三行代码,然后我们这里指定一个阶段六的啊,是他STG,那如果你们要定义自己定义的一些阶段的话,那我们可以从这里。
09:16
边去选几个阶段去进行进行使用,叫build,好,那我们再提交一下看一下。啊,正在运行看一下看到吗?这里就是变成build了,它不是默认的那个task的阶段啊,啊,这里又运行成功了。OK。已经成功了,好,那我们这里的话继续深继续深入的去探究,好这里我们就先使用官方提供的几个,官方提供的几个,好,那这里官方提供的阶段有这几个点,Pre build test deploy.post它这里的你看到没有,这里官方提供了五个默认的阶段,但是这五个默认的阶段它是有一个先后顺序的,点PR1,点PR1这个阶段它是先运行的,然后接着是build的阶段的任务,然后是test阶段的任务,我们这里可以先试一下啊,点PR阶段啊,就是买点p job这样子写,然后这个的话就是买build job。
10:43
嗯,叫这里我们就叫P叫二啊。再写一个JOB3,嗯,这里就是stage,这里就是test,对吧,官方有提供,然后这里是my test照普OKOK,那这里的话我们就使用了官方的这几个starts啊,那我们这里再多写一个相同的加四,然后嗯几对,哎,这里这写这个横杠。
11:36
Test是OK,看一下,嗯,我们这里定义了四个任务,交步一教步二,教步三教步四啊,然后他们分别的这个阶段都是使用的官方提供的这五个阶段里面的。
12:05
一个点PR build test test,嗯,这里写的任务的顺序并不会按照这个你写的任务的顺序去执行,而是按照你,而按照你阶段里边的定义的顺序去执行,那阶段的顺序就是这个顺序,点PR build test de deploy de post OK OK,我们这里写完之后就提交一下,执行好,我们这里就先写232啊,OK,验证通过了,提交成功,我们看一下它的。流水线是怎样子的?看到没有,OK,看到没有,点PR1阶段,点PR1阶段的一些任务先执行叫不一,然后第二个任务,第二个阶段的话就Bo的阶段,Bo的阶段就是一个任务,二太死的阶段是第三个,第三个去执行,但太死的阶段,太子的阶段有两个任务。
13:04
JOB34。嗯,OK,刚刚我们说到他这里,这里是有一个刚刚说,呃,如果你两个任务都是属于同一个阶段,它会并发执行,但是我们刚刚看到它两个任务。是有先后执行顺序的,我们看看到了吗?刚刚这里胶布四是一个黄色的一个状态啊,我们我们可以再编辑一下,看一下,再具体看一下,因为这是一个也是一个很小的一个知识点。嗯。可以,我们可以看一下,走到这里的话,嗯,这里使用的就是官方提供的一个star stars去定义的一些job,叫补名的话,你可以随便定义。
14:00
看到没有,这里的话啊,这里它是交付四是一个暂停状态,还没有执行啊,这里先执行的交付三,最后再执行交付四房顶啊。对吧,这里是因为这里是因为你的GA Le runner配置的一个问题,是你这个g Le runner是你的runner配置的问题,因为你的runner我们只是一个注,注册成功了,但是你还需要经过一个配置,它的默认配置的话是你每一条流水线只能有一个任务去并发的执行,它为了减少内存的消耗,也也就是说。资源的消耗,所以说它一次只执行一个啊,后面的话我们还会再单独讲一下这个get runner怎样去把它并行执行多个任务,对吧?嗯,行,那我们这里的话就使用官方定义的大。
15:00
编写了几个任务啊,那我们如果官方定义的stop start,那那你说啊,我不想使用官方这定义的这几个东西,这这几个阶段,那我想自己定义,那有没有办法呢?啊,当然了,这个官方是支持的啊,我们说一下这个官方怎么去定义你自己的一个stages。在这上面S在这上面定义啊S啊STUDY12。然后一级三好,那我们这里的话。Study我们这里就定义定义了三个自定义的一个阶段,STUDY1 study2 study3,这个关键词在哪里可以看到它的解释呢?也是在这里我们看一下哈。
16:05
嗯。嗯,在这里全局的关键词,全局的关键词有一个这个stage,它的描述是什么呢?流水线的流水线的stages的一个顺序,可以自己定义的这个嗯,Stages。使用stas可以定义啊,一个容器的,呃,这个容器组的一个任嗯,S可以全局的定义这个流水线。定义哪一部分的流水线啊,这是相同流水啊,相同阶段的任务将会并发的去执行,然后在下一个执行。
17:00
将完成成功,就是说上一个任务,上一个阶段的上一个阶段的任务,上一个阶段的任务完完整的运行成功之后,下一个阶段的任务才会去执行,嗯,这里的语法就是这样定义的,这里官方其实解解释的很清楚哈。啊,看看这里定义了三个三个阶段,所有的六的阶段将会并发的去执行。嗯,Build阶段的任务执行完成之后,那个test阶段的一个任务将会去并发的去执行。好,看完官方的文档,我们就实际来操作一遍。这里定义了study study,那我们这里就改一下了啊。请注意一下,这里有一个S,这里有一个S,这里没有S。注意一下哈,这个是这个是全局的一个关键词,这个是一个任务内部的关键词,大家一定要注意一下。
18:15
OK,这里我们就定义了,定义了三个阶段,然后把这三个阶段它的任务,把他stage给改一下,我们这里修改一下。提交看一下,嗯,验证成功,提交成功,看一下流水线怎么跑的。正在跑好大家可以看到已经改过来了,Start start1 start2 start3这里已经改过来了,就是使用了我们自定义的一个阶段去定义的这个任务啊啊行,那它的这个。我们就学会了这个怎样去自定义阶段,对吧,你这里可以就使用install啊,对吧,你这里使用build的,还说你这里用deep blue,还有你这里啊DP。
19:18
然后你这里写clean对吧,你嗯,因为你部署完之后,你要把一些一些不用的镜像啊,不用的文件啊,给它删除掉,对吧,那你前面还可以写一个lit code验证一下代码啊,跑一下代码啊,对吧。大概就这样子,这里最好不要用,最好不要用那个空格哈。应该是不能用空格的。这里定义。大概就这样子,你这里就是使用自定义的,自定义的阶段啊。
20:02
然后啊,然后我看一下啊,这个讲完了,这个讲啊,Study scared,你看一下scared它的。SC它其实执行的就是一个线入脚本,它可以去执行一个多行的线入脚本,就是你这样的一个斜杠啊O,然后啊胶布二。MY。那就二就这样子,这里看一下。嗯,这里可以定义,但是这里定义,你随便定义多少个都可以,但是你下面可以不用它,就是你只用你,你只用你定义好的,你这里。
21:07
这里的阶段,这里的这个关键词必须要在这里去筛,去从这几个中选对吧?嗯,你这两个可以不定义任务,嗯,这是没关系的。看一下官方这里的啊,任务正在跑,我们看一下官方这里的这个关于K是怎么去解释的啊。Skilled脚本。啊,在这里看这里的描述的话,关于这个关键词的描述,Shell skill that isit by a roundnder就是被roundnder去执行的一个陷入脚本,嗯。对,使用scale的可以去指定一个shell脚本去被runner,去执行所有的任务,都都必须要要求一个SQL的标签。
22:07
对吧,看见最简单的job,所有的任务都要要求这个SC,所以说它是一个必填项。每一个任务都要写这个,不管你写什么,嗯,然后这里的话,这里就是直接冒号,后面加加这个校脚本是一个单行的一个输输入法,那那如果你要输入多行的一个校脚本,就是用换一行用用横杠,然后空格这样,嗯还可以这样子C-request po。好。嗯。OK,看到没有,这里就是打印的多行的一个文本,使用shell脚本打印多行脚本。好,那我们这个讲过了啊,这个就是自定义的,你的自定义你的阶段。
23:12
这里是全局自定义的阶段,然后这个是销售脚本运行的销售脚本,这里就是你任务内的,任务内的这个阶段必须要从。必须要从全局阶段中选啊,这个还有这个啊,这两个关键词的话,我们再简单的看一下啊,这两个关键词其实是很比较简单一点的。
24:01
这里应该有的啊,这里这里没有,OK看一下,直接先看一下这个吧。Re reta,嗯,Reta的话,嗯,看一下哈,When and how many times a job can bea to out to re in case of our future,这个意思呢,就是说啊,有可能这个任务会失败,所以说它需要有一个重试的机制啊,这个重试的机制就是使用这个关键词retain重试几次,嗯,当这个任务失败的时候,他会去当你设置了这个参数,当你任务失败了之后,那它它就会自动去重试,看一下,在这里使用重试配置,以防止任务失败啊,使用重重试,假如你的这个数字设置的是二,那么这个任务成功就在第一次运行成功之后,它就不会再,嗯,如果设置为二。
25:09
在第二次去运行的时候成功。第一次尝试,第二次运行,它就不会再去尝试了,值必须是一个正数,正整数,从0FROM0到二,哇,最多是只能适用两次哈。Three runner,头痛。两次重试的机会。如果你设置为零,一,如果你设置为零的话,那它就不会去重试,如果你设置为一的话,那它就是在第一次运行完第一次,如果你第一次运行你失败了,那他就会再去尝试一次,如果你设置为二,那它就会一共,如果你一直失这个任务一直失败的话,那他一共会运行三次,所以说这个这个阶段最多是只能使用三次。
26:15
最多最多运行三次啊。嗯,这里是默认可以使用二,但是你可以去指定这个runner它的一个失败原因看。只有当runner系统失败的时候,才会去触发这个最大的限定次数,Win就是限定它什么时候失败,对吧,如果它内存内存溢出了失败了,或者说他的runer系统失败了,他再去尝试这里失败原因这里这里他有官方有写,嗯。好,那我们这里直接。
27:00
哦,这次的话录的有点长。嗯。这里的话我们直接是。当遇到网络网络不通畅或者说网络延迟的时候,那你这里就可以使用使用重试阶段对吧。网络有点卡呀。嗯,这里网络有点卡,那我们下一篇的话就再介绍其他的关键词好。
28:00
然后的话,这些关键词的话,大家我都会给大家一一的去讲解,首先首先讲解的这个顺序的话,肯定是先介绍一些常用的啊,常用的,然后慢慢的然后去使用这些常用的去进行实战,因为只介绍了这些关键词,没有去在项目中实战还是不好的哈,那行今天的视频的话就先到这里啊。后面我会继续的啊,继续的录制视频,因为这个的话也是我的一个一个长期的计划,并不是一个短期的计划,也希望大家能够,呃支持我,然后的话啊,嗯,希望大家多多支持,一个人录视频的话,其实也是挺不容易的,也要准备很多资料啊,好,谢谢大家,谢谢大家,如果喜欢我的话,对觉得内容对你有帮助的话,大家可以点个赞或者投个币分享一下也是可以的啊,谢谢大家,谢谢大家。
我来说两句