00:00
那接着我们前面的步骤,我们接下来执行我们这一步来创建项目,这个创建项目呢,我们将会创建两个项目,分别呢,将cooper s fair simple div和cooper s fair这个simple provide,这么这个div环境和provide环境的这两个项目,因为他说我们这个CCD流水线,它呢会根据我们提供的这个压面尔模板文件,比我们来点过来看一下刚才克隆的这个工程,Folk过来的这个工程,它这个里边deploy VR,它这些文件里边随便点进去,他们呢会把我们的这个当前deploy部署到一个名称空间下,那这个名称空间的名这是固定的,所我们接下来就要创建两个固定的工程,或者大家可以把所有的名称空间这一修改,创建成自己想要的工程,那我们来创建上两个项目就行,因为在库派s fair里边一个项目就会对应一个名称空间,所以我们在这一块呢,看到能发布到我们这个项目,也就是名称空间里面,那么接下来创建两个,一个呢是我们叫。
01:00
外,我们的这个dev,一个是我们这个provide,我们现在使用另外一个账号,这个regular只有参与项目的权限,他没有创建项目权限,我们先来登出我们现在有一个project的din项目的管理员,我们来创建一下项目。好,我们现在进来,我们在这儿点击一个创建,我们先来创建第一个项目,我们来点一个创建资源型项目,好,这个项目呢,就叫这个第一位,我们就叫这个开发环境,然后呢,再来创建一个项目,就是我们的生产环境,这个项目的资源限制我们就不限制了,我们就照着文档全部来做点一个创建,然后呢,第一个做完了以后,接下来我们再来创建第二个项目,第二个项目呢,就是我们的这个provide,名字呢直接复制过来,千万别整错CTRLC。我们把这个项目的名字来创建过来,这是我们的生产环境,好,我们就叫生产环境。那么生产环境我来点击下一步,呃,上一步还是我们这个资源型项目。
02:02
这是一模一样的,我先来确认一下我们这个刚才创建的是不是资源型项目,好没问题,然后呢,接下来我们这个别名,这是我们的生产环境来点击下一步还有呢,资源的限制,我们可以让它不限额度,好我们来点一个创建,那现在呢,创建了两个项目,那肯定得要求我们这个开发人员进我们这个项目里边来进行维护,怎么进入项目里边,在项目设置里边,项目成员我们来邀请一下我们的开发人员,点一个邀请,你就来邀请这个project regular的普通的这个项目用户,把它邀请成一个叫operator项目的维护者,这样就可以维护我们项目里边的这些东西了,我们这个管理者呢,是创建项目,维护者呢是维护项目里边的,好,那这个邀请完,那这个邀请完呢,我们下一个也要邀请来到这个生产环境的这个项目啊,点个我们的成员,成员里边我们来邀请一个成员,还是这个regular,他是我们这个项目的维护者,那这个邀请完了以后呢,我。
03:03
我们就可以退出我们这个项目了,来点一个登出,那来到我们这一块,我们现在就使用project regular来进行登录,来输入账号密码,现在登录里边我们现在就有两个项目,那有两个项目我们准备好以后,我们的整个流水线就要把内容发布到我们这两个项目里边,接下来我们就继续来做下边的流水线,来创建流水线,那创建流水线的整个过程其实就是要把我们的这个项目要自动化的部署。最终要使用这个流水线自动化起来,我们就在这儿来,直接在我们这个项目里边,而且不能在这个项目里边,因为我们这个项目是我们这个开发生产环境真正的项目,我们这个David OS工程才是我们真正的流水线能创建的这些工程,那么之前呢,创建了一个古力ma David OS,那就直接进去用它也行,那也就是说我们这个古mail David OS这个里边呢,是专门来维护我们所有的流水线这个项目的,好,那现在呢,我们就来可以直接来创建,包括流水线呢,在这一块都提示我们这流水线其实就是一系列插件的集合,我们就是通过好多插件他们呢配合起来,整个完成我们的自动化的持续集成和持续交付的过程,有人可以先用G把代码拉取过来,再用me打包,然后呢我们再用单元测试来测一下,然后最后呢,我们再推送镜像等等一大堆,所以现在呢,就可以直接来在这儿点击创建流水线,那这个流水线的名称,比如我们就叫DEMO c scd来测。
04:34
是我们的这个持续集成,持续部署的这个过程,然我们在这儿选中,下面呢有一个代码仓库,我们来选一下,在这儿呢,就是来说明我们的这个流水项目项目我们从哪个代码仓库里边拉取,可以支持GI helpb和其他各种GI客户端的这些仓库,以及我们的SVN等等,那么现在呢,就从GIHUB里边拉取,但从GIHUB里边想要拉取我们这个项目信息,GIHUB规定,那现在呢必须得有一个token,所以们在这来可以来获取一个token,那这个token呢,帮我们来生成这些信息,好,那现在这个token我们比如就叫DEMO的这个CCD来测试这个CCD的,然后呢,我们来点一个generate。
05:17
我们让它来生成一个token,有了这个token我们就可以连向我们的get helpb来拉取项目了,那好,我们就用这个token,我们在这在这呢,我们来配置一下token呢,就是我们刚才获取到的这个值,然后我们就相当于使用这个信息去get have里边得到我们的这个项目,我来点一个确定,然后呢,它就会利用这个token去hit help里边检索到我们这个token对应的这个用户,它里边的所有项目,而这个项目呢,是我们有流水线文件的这个项目,因们只有这个项目里边有那个金费,那可以来确认一下这个Java simple里边有一个in,只要有这个流水线项目,我们就能用它,然后接下来我们来点击下一步这块创建好以后,接下来就到高级设置,高级设置里边呢,可以保留默认值,都是什么意思,也可以来看一下,比如第一个叫丢弃旧分支这块呢,都说的非常清楚,在这一块提示就是说我们构建的这些记录啊,每一个东西构建的记录它呢都在这。
06:17
同着比较占用磁盘空间,你呢可以设置你的这些构建的这些分支记录,呃,保留几天,或者呢,保留最大的个数,也就说我们只要超出了这两个选项中的任何一个限制,就会把我们构建的这些分支数据呢就删掉,那我们这个负一,那就会丢弃我们这个已被删除的分支,就是如果远程仓库里面这个分支都已经删了,那我们这一块呢,也就不用保留了,我们在这个负一,我们可以来用它默认值,还有我们的这一块行为策略,行为策略这一块呢,我们先来删除这个,从fo仓库发现PR,然后我们保留这两个都用默认值,这个PR是什么意思?就是我们说的铺request,如果用过get help,就是我们fo来的这个代码,我们也可以修改,修改完以后呢,我们可以让我们的代码让远程仓库呢,就是这个库跟我们的代码来进行一个合并,那怎么合并,我们就要创建一个普request,就相当创建一个PR,所以我们接下来这一块的策略就是来首先发现。
07:17
分支看是不是排除也作为PR提交的分支,还要从原仓库中发现PR,我们只拉取PR本身的这个源代版本,这块呢是这两个设置,这两个设置是什么意思,在这一块呢,也都有解释,我们可以来看一下他说的这两个设置在下边,诶我们这个发现分支,我们是用的第一个选项,那就表示我们这个CI流程不会扫描我们这个。原分支,比如说这个代码呢,Orange是从另外一个地方拉取过来了,他不用扫描这个,它呢只会把我们当前的这个,我们要扫描的这个东西我们拿过来,然后还有一个从原仓库中发现P。我们现在呢,使用的都是第一版PR与目标分支合并的,哎,不是这个第一版,我们默认的是第二版是PR本身的原代码版本,也就是说我们现在一次发现操作,只要我们自己fok过来的这个源代码啊,不用管这个远程的这个PR相关的东西,好,那这一块呢,我们就保留默认值就行了,第三个我们也没用,就直接删了,然后接下来脚本路径在这一块呢,需要修改脚本路径,这一块我们一定要指定我们的金s fair这个脚本名叫jins fair online,所以我们现在呢给后边相当于要指定我们的这个脚本名,这是我们的jeins fair的名字,那指定好了以后啊,把这个前后空格一定都删掉,完了以后呢,接下来有一个tri叫触发器,触发器呢,就是我们什么时候从GIHUB里边去来拉取这些项目,怎么着这一块呢,就是说如果没有扫描触发,则定期扫描,意思就是我们有两种办法,第一种呢,就是主动的触发,第二种我们定期扫描。
08:59
主动出发呢,我们可以是通过配置GIHUB,有一个这个叫web hoook,就是我们的这个web钩子,只要我们在GIHUB里边代码呢,一修改GI helpb就会直接给我们远程来发一个请求,相当于给我们j cases,利用我们的这个web钩子,其实就是回调函数给我们这个回调地址,就类似于我们支付宝一步通知地址给我们自己呢,来发一个通知,告诉你我们get HUB里边有代码提交了,然后我们再来触发我金克斯从get汉B里边拉代码的这个过程。
09:33
但往往呢,他这一块也说的很清楚,很多情况下我们这个通知可能会失败的,那你就完蛋了,你这个通知失败,你收不到通知,可能只能等下次代码修改了,所以们在这种情况下呢,还可以让他定时出发,比如我每隔一个小时就去扫一下get help,或者我们来给每隔一天,这个呢都根据我们大家当时业务团队里边我们这个代码的更新频率,大家定一个时间,比如我就来设置一个五分钟,包括这个DEMO示例也是五分钟,然后剩下包括如果我们试用web钩子的话,这个web hook这一块呢,推送消息将会到这个位置,我们可以把这个未知的地址,我们给他在get haveb里边来做一个配置,Get have,只要代码更新了就会给这推送,但是我们的这一块呢,由于我们整个金克S都是内网环境的,所以说你看这一块的这个地址。
10:24
我们做了这个内网穿透,那还行也能推送,所以我们把这个内网穿透地址复制来,可以配置到getb里边。这个呢,其实配置起来很方便,来到我们这个项目里边,这有一个setting,我们在这个项目的设置里边,其中就有一个web hoook,就是我们这个web钩子,只要我们这一块的程序,我们这个仓库里边代码有变化,我们可以添加一个web钩子,然后呢,我们来指定地址,那就是这个地址,他们就会给我们这个地址来发请求。就是发送我们一个这个事件来把这个钩子添加上去,那我相当于呢,Get have,只要有代码的提交,我就通知了金ins,那我们现在呢,大家也做一个这个定时触发,那这两个做好以后呢,我来点一个创建。
11:07
这个创建以后,我们现在我们的拍烂,相当于我们这个流水线工程就创建好了,那创建好以后,它就开始要进行启动运行,那现在呢,有两个分支,这两个分支呢都在运行中,而且这一块呢,也能看它的这个日志信息,比如他从getb里边拉取代码,这都能看到,所以我们看到呢,这两个一个是master,一个是dependency,这个master dependency就在我们的这一块,我们这个项目里边呢,因为它有两个分支,一个是master,一个是dependency,那这两个分支的代码它全拉下来,那拉下来以后呢,接下来就进入我们整个的自动化流程,那这个流程我们随便点进来看一下,这个流程呢,我们可以看一下这个日志,这块日志里边,那现在呢,我们就来看下边正在get,正在我们这个拉取相关的这个代码。而且呢,一会儿还会有图形化的展示,只要大家看见了我们这一块的这个流程,那说明我们这儿就配置成功了,那么接下来就是经过漫长的等待,它来进行我们整个的流程,因为这个整个流程呢超长,我们流程呢在这一块,而且中间最浪费时间的流程就在这儿,我可以给大家看一下,我们整个流程呢,是先从get里边拉代码,那拉完以后呢,执行单元测试,单元测试完了以后进行我们的代码分析,然后再来提交镜像等等一大堆操作,所以们接下来的所有流程,特别是我们要做单元测试。
12:32
因为我们getate里边提交的这些代码,我们的src,这才是我们真正的spring boot工程,一个po,一个src,其他呢我们都不用管了,然后呢,我们这个SLC里边就是我们的代码,他要把这个代码呢,其实相当于po里边所有的依赖都要下载来,所以这个去me仓库下依赖也是一个很慢的过程,所我们在这呢就得慢慢等待,那看一下现在的这个流程走到哪了,好,现在的这个流程呢,它还是在这儿拉取,那我们就还是来稍等一下,等到它有图形化的这个展示为止,来F5还是来刷新。
13:09
一会儿只要我们的代码拉取完,它的整个图形化展示,那就出来了。那我稍等了五六分钟以后,我们在这一块呢,就有了图形化界面的展示,比如的这个任务,从get helpb里边拉取代码已经成功了,包括我们可以在这来点击查看日志,我们能看到第一个阶段checkout SCM,这个阶段一呢,其实就是在这定义的,我们来到它的这个流水线文件,流水线文件里边定义的这个名字叫什么,那就是什么,比如我们这呢,有一个checkout SCM,所我们第一阶段它呢就已经执行成功了,而执行的是什么操作,那在这呢,这有一个拉取两个分支的这个代码就已经没问题了,然后接下来第二阶段,第二阶段呢是单元测试,但测试呢运行一个命令是me clean,相当我们这个清空清空工作空间以后呢,然后我们再download去远程的me仓库里边下载我们要用的这些镜像。
14:04
这个倒不是镜像是我们这个门仓库里边的这些炸包,依赖我们在这来下载,只要第二阶段进行完,那接下来就是第三阶段,第四阶段,一直到后边,这是我们整个通过可视化的流程,我也能监控到这个金克S先执行到哪一步了,那这一块呢,还会提示我们这个有报错,那只只要这个有错误,肯定是我们这一块出啥问题了,那比如我们来到我们的这个活动里边。我们现在这个分支呢,两个活动,一个是dependency,这个里边的这个流程,然后呢,一个是我们的这个叫我们这个master,这个是master呢,是关键的这个流程,我们是来整个编译master的,那master里边的这个流程呢,我们来点一下现在这个可视化到这一步,看是不是我们这一步出问题,那么就直接来点查看日志来到这一步点开,那么这一步呢,他在这儿下载,但我们发现这个下载其实有问题的,他在这规定的BOT start parent。
15:01
1.4.1,这还是一个build stemhot这个东西想要去我们这指定的IO这个位置来下载,而不去真正的门问仓库来下载,那这个就更慢了,所以我们也可以来修改一下代码,那我们就可以不用等这一块执行了,所谓这个流水线呢,你不想让它执行了,在这呢是可以启动流水线的,那点进它的这个活动里边,流水线里边这个master你不想让他执行了,你点一个停止,我们就相当于人工的干预,让他呢就停止了,那停止以后呢,我们进来看他这个流程里边其他的流程我们就都没有走了,我们金克斯fair里边规定的所有流程。在第二步这一块呢,我们就给他停了,我们可以来修改一下这一块的代码,修改一下他的这个POM文件,我们让他直接从我们的门粉仓库里边拉,那就应该更快一点,而且呢,我们看一下这个src它是不是写的非常复杂,如果非常复杂的话,这个可能依赖还不对,我们点进来这个src里边的这个代码,哎,其实只有两个程序,一个是主程序application。
16:05
这个主程序里边呢,只有一个spring boot application,然后呢,一个hello word,我们的这个controller,那除了这两个呢,那就都没有了,所以我们可以在这呢,完全可以修改它的这个po文件,让他呢别从你的这个仓库里边拉。比如我们在这儿呢,他呢规定了我们这个仓库是从spring的这个仓库里边拉取的,那么现在就直接给他找一个门仓库,找一个我们这个合适使用的这个版本就行了。我们去仓库里边来找一个合适的spring boot版本,或者我们直接去spring官网来看一下可用的spring boot版本,来进入spring的官网。那那这个官网呢,还改版了,那点进它的这个projects来看这个spring boot,它现在可用的版本是多少,这有一个,那我们现在呢,比如我们用它二幺几这个比较稳定一点的版本。那点进它的这个reference do,我们要复制它完整的这个版本号213,这213这个复制栏应该没啥问题,我们就直接在这改一下213,看看是不是还带了releases之类的,所以我们在这随便来找一个spring boot的这个事例应用。
17:16
这是它的这个特性,我们能看到这个版本呢,是213RELEASES,就是它control home,最好来到它的这个首页,Control end这个页面呢,来到它的这个home母首页,来找它的这个示例,Getting start这一块我们先使用moment的方式把它呢拿过来,这个版本呢,那就是这个L3。这个releases我们在这儿一改在这儿,好,我们也来在这来改一下,修改修改我们这个po文件的这个版本,那修改以后呢,让他再来触发构建,正好我们这个版本呢,在下边这这是我们spring boot负依赖的版本,把这个加上,然后把它自定义的这个仓库位置,Spring的这一块的这个仓库位置我们就可以全部删掉了,就不用从spring的这个自定义仓库下载了,好我们把这个修改完了以后呢,我们给它提交到commit分支点一个commit,而且我们这一提交,我们之前还配了一个web的钩子,其实理应我们在这呢,会自动再来触发一个我们的这个流水线,所以我们来看一下我们的这个流水线。
18:18
我们现在这个流水线CCD,我们可以把他以前默认的这两个都给它停掉,我们停了这个master,把这个dependency这个我们也可以停掉。这没自动触发,这肯定还是内网穿透不稳定的问题,然后呢,接下来我们可以在这让它再来运行一下,来点一个运行,重新来启动我们这个master分支,然后这个运行呢,接下来它会提示我们,如果我们在这再重新运行的话,它根据流水线里边设置的pme字段,要我们输一个Tang name,这个Tang nameme是什么?参照我们这个官方文档,在我们这个下边流水线这个Tang nameme呢,它下面说由于我们这个仓库里边,我们配置文件里边这个T格name是空的,他把这个T格name呢,认为是一个我们将要构建的这个版本号,比我们输个V0.0.1,那么现在呢,第二版了,我们就来V0.0.2,来点一个确定好,那接下来呢,他就来构建我们第二版的,然后这一块呢,提示失败,那失败呢肯定就有问题,这个问题是我们这个socket连接呢,被重置了,连接异常了,说我们代码拉取呢,在这已经变成nu了。
19:25
那是由于我们之前是不是已经用过,哎,没有是这他说呢,我们这个API GI have,嗯,Reach able,那其实呢,就是不可达,那就是网络原因不佳导致的,我们现在这个问题,那么可以让它重新启动上几次,那就没啥问题了,那么多试上几次,我再来点一个运行好,那现在还是V0.0.2。确定,那接下来这一块呢,它又提示在队列中,那刚才网络呢,不好,现在呢在队列中,那队列中以后呢,只要我们这一块整个初始化成功了,那接下来我们在这儿呢,就会有一个可视化的界面流程来看一下这个日志,还是在这儿来拉取代码这一块的东西,好,我们再来稍等一下这个代码拉取完以后呢,那接下来就是剩下的流程。
20:12
那么一会呢,就来看一下剩下流程,我再来等上几分钟,那稍等呢一阵我们这个流水线的可视化界面我们就出来了,我们就可以在这个里边,我们来看它的整个日志流程,那么的check,我们这一块呢,已经是OK的,然后unit,那test它在这呢,来下载我们相关的依赖,我们看到这一块的依赖下载流程日志呢,都已经开始打印了,那我们这一块呢,只要全部依赖下载完,那么所有的这些依赖我们准备好了以后呢,我们这个单元测试那就启动了,那么就来等待一下我们这个单元测试,那在这儿来监控一下它整个日志流程。好,我们一直翻到下边来监控就行了。那我们现在看到这个测试阶阶段呢,已经测试完了,因为这个单元测试非常简单,所以测试起来呢非常快,然后接下来是我们这个sona cube来进行的代码质量分析,它呢其实也是运行了一段share脚本,没问什么sona这一块的脚本,然后我们这个分析完了以后呢,我们这个分析结果就出来了,然后接下来我们的这个build push,这个阶段呢,是给我们来构建我们的这个镜像,并且呢把镜像推送到我们的这个docker ha里边,那这个阶段呢,稍微就比较慢一点,它往上推送镜像,我们都可以把完整的流程在这都能监控到,我们现在已经过了的阶段,好代码检查出来了,然后呢,单元测试也跑过了,Unit test也运行了,然后接下来是这个build push,我们就来等待,我们也能看到这一块呢,已经有三个成功的这个任务,然后呢,就剩我们最后一个,你就来稍等一下。
21:47
那最后一个这个任务也成功了,这个任务呢,我们能看到它是docker push给们docker help里边完这个镜像呢,叫snapshot master3把这个呢推送过去了,那我们可以来看一下我们的这个镜像在dog have里边有没有,那这个dog have呢,来登录进来,好使用我的ID。
22:12
然后来到我们的这个仓库,诶我们发现呢,这个雷锋阳David OPS,这个JA simple,我们这个镜像呢,已经推上来了,而且呢,我们这个应该叫snaphot master这个几来来看一下这一块的提示,我们是这个MASTER3,所以我们这个第三次的这个构建推送上来的,我这个第三次的在这呢也有了,我们发现呢之前。第四次的那个现在也已经推送上来了,好,我们这个镜像呢,就准备好了,包括这个text里边,我们也都能看到,这个text里边,除了我们latest最新的外,然后呢,第三个在这儿也有没问题,还有我们之前的第四个,那这个有了以后呢,我们再来看剩下的步骤,这有一个叫push。Latest,这就是来推送最新的镜像,那前边呢是把那个镜像推送上去,那接下来把这个镜像呢,再改成一个latest标签就是最新的,所以我们能看到doer have里边除了我们推送了这两个,还有一个最新的这块部署呢,这也就完了,接下来的这个阶段,这个阶段呢是来等待确认,是不是把它这个部署到我们的开发环境,所我们看到呢,将来运行的这个阶段,在这呢,就有一个等待输入,这个呢,等待输入就询问我们是不是要部署到我们的开发环境,我们可以来点一个proceed,好,我们相当于自己手工来确认,这样如果有一个用户他专门来是可以来确认这些信息的话,那我们就可以把整个流程的控制,相当于我们来走一个任务流的这个流程,来我们这个。
23:43
上级人员呢,再来控制,比如下边呢,还有一个控制,是不是要把我们这次release的这个镜像我们呢,发布到我们上边,Push我们的这个tank,这个tank呢,我们之前输了一个什么。V,几点几我们来点一个proceed,然后这一块呢,只要推送上去,我们看这一块的这个日志,它给哪推送push,看这一块的推送呢,是这样等待我们这个输入,我们已经输入成功了,人工介入了,然后GI,它呢是把我们这个东西给我们推送上去,那现在呢,是以。
24:15
这个用户是他,然后呢,相当于把我们这个版本叫0.0.2,然后呢,推送到我们这个master分支,作为我们这个0.0.2的版本,然后剩下的这一块运行,这都成功了,这个成功了以后,我们来看一下这块的成功是get push,把我们这个代码呢向它推送过去,然后呢,用的版本是0.0.2,然后下边这个一样,Docker tnk,注意我们给GIHUB推送了一个镜像啊,这不是镜像,是给GIHUB推送了我们这个代码,想要GI haveb里边就会有我们当前V0.2的这个代码,来get haveb里边看一下,来刷新在我们的这个代码里边点击我们的代码。咱们这个代码里边,我们这个发布的产品里边,我们点过来。我们看到呢,就有一个V0.0.2,所以我们这个呢,自动的也把我们这个代码推送到我们的get helpb,然后呢,同时我们看到下边还有一个docker tag给我们这个镜像呢打了一个标签就是snapho master3,把它呢变成V0.0.2了,所以我们来到doer ha再来确认一下这MASTER3。
25:21
这个快照镜像就没有了,然后呢,换成了一个标签叫V0.0.2,我来刷新。来确认一下我们的do里边的这个数据是不是有的。好,Doer have,我们来找一下V0.0.2,好,没问题,我们这个snapho,诶之前还存在这我们打个标签是一个新镜像,在这放一个好,我们这个相当于doer he也发布了新的镜像,然后呢,再到下边,然后再来询问我们是否部署到生产环境,相当于给doer里边镜像也都推送了,那接下来可以人工介入,诶我们这个上机一介入,说是要推送到我们这个生产环境,那就点一个proceed。
26:00
但我们这个人员呢,是因为他拥有对我们整个流程的。这个操作功能,所以他自己在这能确认,那除了不是这个流程维护人员外,其他这些开发人员进来可能还在这儿呢,确认不了,只只能等我们这些有权限的人在这确认,那确认了以后呢,我们现在看到我们一定呢,在我们的这个生产空间的开发环境里边,我发现呢,有一个容器组,那么生产环境这块呢,肯定得等一阵儿它才能进来,但是开发环境里边这个容器总的这个部署就已经上来了,这个部署上来以后呢,它这个最小副本不可用容器创建中啊,这个呢比较慢,因为这个部署呢,还是我们之前的流程,我们刚才把镜像都自动的推到gihab的,咱们这个部署呢,就是从gihab拉取镜像,拉取的这个镜像呢。拉取来了以后,然后在这儿再来创建我们这个容器,创建容器启动了以后,我们就部署过来了,我们这个项目里边好DV,我们这个环境部署了,我们再来看我们的这个其他项目,生产环境,诶生产环境呢,二容器组里边两个这个也已经准备好了,这两个容器组有一个没有准备就绪,正在创建中,所以这个过程呢慢慢执行,中间呢有一些错误环节还会重启再来调度,所以我们现在呢,看到的所有的流程就是这样,我们的这个开发环境,生产环境现在呢都已经部署上了我们这个代码,而且呢GIHUB也推送了我们这个镜像,而且呢giate也发布了我们这个代码release版,所以因为我们都已经推送到我们这个部署环境了,所以gate上这些就已经自动发上来了,如果是我们人工做这么多流程,那我们要做的事情就非常多了,所以这就是我们整个的自动化流程的体验,那剩下的这些漫长的其他过程我们就不等待了。
27:51
大家在下面呢,可以测试一下我们整个的自动化流程,在David维OPS工程里边,我们可以直接来创建一个我们CIICD项目,这呢有一个流水下,我们可以再创更多的流水线,全部让我们的整个流程全部自动化起来,而且呢,我们刚才自动化的整个流程里边有代码的质量分析,我们只要这个流程运行成功,这块代码质量这块呢,就会有一个简单的检测报告,当这个检测报告要看详细的,就得去sona cube里边来看到我们之前的详细报告,我们可以通过内外环境登录过来,来看看详细报告,我就不登了,这一块的简要报告那就够了,我们检测了97行代码,零个bug,零个漏洞,这些东西呢都有,以及我们前面的这一块数据,那现在这个流水线它呢,亚健康状态,因为有些成功有些失败,咱们这个活动里边这个四号活动还暂停了,那暂停的原因是因为我们在这儿要等待这个人工确认啊,暂停了那没问题,然后呢,接下来还有我们这个。
28:51
活动里边还是我们这个DEMO,我们这个活动里边呢,除了我们这个暂停的,我们三号成功的,而且花费多长时间,我们在这儿呢,都能看到,那有了我们整个的这个自动化流程,我们后来就可以将所有的项目自动化的组织起来,那想要自动化组织起来。
29:08
那大家最需要做的一件事情就是编写好我们这个项目的金克费文件就行了,这个金克斯费的所有编写们之前都给大家看过这些语法,就照着这个来编写,而这还有流水线的参考步骤,我们都可以照着它的参考资料来做就行了。
我来说两句