00:00
那好了,同学们,我们回到这个blue ocean的主界面,那在这呢,我们再给大家多介绍另外一种流水线的形式,叫多分支流水线,那什么叫多分支流水线呢?啊,其实就是在我们的呃,这个get上啊,去创建多个分支,让他去做这种啊不同的构建啊,给大家简单解释一下啊。那我们现在使用jacks去构建出来的这个制品啊,就是那个炸包啊,对吧啊,我们只有只有这么一个这个gate服务器上边的其中的一个分支,就是这个闷分支。那在我们这闷分支上呢,我们去把这个源码给它给拉回来,然后通过Jackson去执行构建,构建出来之后呢,生成这个制品。啊,其实就是我们那个啊炸包对吧,那这只是在一个分支上,那么我们现在呢,可以在B上呢去搞多个分支,那这种情况呢比较常见啊,现在呢,我就有两个分支啊对吧,一个是我提交代码,那就是测试的这个分支上面检查没有问题之后,然后再去。
01:11
把它提交到我们的这个主分支上,那实际上啊,这个过程。它应该是先在我们的这个测试服务器上,也是测试的分支上,我们先提交上去,提交上去之后呢,执行构建对吧?啊,然后生成这个制品,那生成出来的制品呢啊,T的服务器生成出来的应该是T服务器的制品,因为它和这个主分支上的肯定是不一样的。啊,那这会儿我们就没有必要去运行两个jacks,然后去拉取不同分支去搞不同的这个测试了,Jacks能够集成两个分支啊,同时去执行构建,注意是同时去执行构建啊,那他会发现哪一个分支上的代码有变化,那去单独去构建那个,那比如说我们T子分支,我们今儿又提交了源码,对吧,然后今儿晚上呢,我们就跑一下测试,跑测试在这就能看出来我们这代码能不能合并了,一旦要是跑完测试之后没通过,那是不是要改完代码之后再去合并到主分值,所以在test上先跑测试,那跑完之后啊,到这个我们的。
02:15
主分支上啊,没有问题了,已经合并到主分支上了,那这会儿我也需要啊,让他给我build出来这个制品其实就是我们的这个炸包嘛,把这个炸包给我们在主分支上再重新去build出来,然后提交到我们的,呃,另外的这个比如生产服务器上。啊,这个面向的生产服务器。那这个呢,它是面对的是我们的测试服务器。那所以这会儿这两个呃,构建的方式就有点儿不一样了啊,那起码我们在这儿呢,就能看出来,简单的这个区别就是它最最后发送的服务器不一样,一个是往生产服务器里去提交,另外一个呢是往测试服务器里去提交。
03:02
那么这会儿啊,多分支的这种job啊,在这呢,就有这个呃应用场景了啊,那么呃,我们在这儿呢,给大家创建一个多分制的job吧,给大家做一下呃,这个简单的事例。在这个jacks的blue ocean里边呢,就可以直接创建一个新的流水线项目,然后在这我们添加一个gate仓库。嗯,还是把他这个地址我们给他复制过来。大家一定要,嗯,别误会啊,这个多分支的这种构建,它不是说在逻辑上,比如说我呃有这么几步,12345步,然后其中当我遇到了呃在某一步遇到了什么问题之后,我要跳过什么或者走什么,这种逻辑分支,这种逻辑上这种分支呢啊,一般来说我们称之为叫工作流,对吧,这种工作流的引擎呢啊,可以通过我们用。代码上这种呃,简单的去实现一下,但是复杂的工作流呢,还是需要工作流引擎的啊,这个构建呢,它跟这个构建这个多分支的这种项目跟逻辑上是没有关系的,这是原上的这种区别啊,因为我之前有同学问过啊,这个有这层误会啊。
04:18
那我们把这个gate给它粘过来,然后贴上呃账号。密码。然后直接在这儿创建流水线。OK,他创建完了对吧,呃,不是它这个这是OK了,然后在这呢,我去创建流水线。啊,注意啊,有的时候呃,或者说这个现在是blue ocean这个呃,外部UI啊,它是多多少少有1.bug的啊,正常情况下,因为之前用的时候,它是能够拎上我们的get服务器之后帮我们去创建这个Jack field的啊,就是我们我们的这个呃,之前在。
05:02
那个那个。外部界面去填写的这些这个脚本啊,它会生成一个文件啊,这个多。多分支的这种构建呢,它也是依赖于我们在每一个分支下都存了这么一个file。然后去做个性化的定制。每一个这个分支呢,都会多多少少有一些区别啊,那大致可能一样,但是每个分支呢,一定是有区别的,比如说这我就往测试服务器去发了嘛,对吧,那每一个Jack fair呢,里边这个区别,呃,我们写好之后呢,把它提交到我们这个,呃,这个G的服务器上,那现在啊,它是没帮没没有办法帮我们去创建这个Jack fair的。那么我们在这儿点一下注意啊,在这儿我们的这个项目名称边上有一个呃,配置选项在这儿呢,去手动去配置一下这个get的服务器,你看他现在呢,没有用到我们刚才填那个账号密码是吧?啊,我们这只选一下这个之前添加这个GI lab啊,这样就可以这个。
06:06
连到我们这服务器,然后接下来呢,啊,第二个事就是这个啊,这个它会默认去从我们的项目的根目录下去找,也就是啊分支的根目录下去找,也是read me这个位置去找,那么如果要是放在read me这个位置的话,呃,我们在提交的时候,提交代码的时候,这么提交单项目是提交不上去的,除非你是这种,呃。这个比较个性化的这种目录结构啊,重新去配置的这个po啊,或者呢,再或者啊,我直接在我现在不改这个po的话,我直接在这个DEMO下呢,去创建这个Jack fair,然后呢,可以在这去配置一下。这个脚本的路径啊,它在哪?那我们给它放到这个DEMO杠一斜杠jacks file啊,放到我们这个项目的主目录下啊,嗯,然后其他的我们先不用管,然后点一下保存,我们可以看到啊这个SC多分支流水线日志。
07:11
啊,然后他在这儿呢,会帮我们去,呃干就是也就是扫描一下我们当前的这个多个分支,看看,嗯,这个分支里边的代码有没有发生变化,看看这里边的dragon fair有没有发生变化,那么在这能看到啊,它现在。应该是找不着对吧,DEMO一下Jack他找不着。是吧,那找不着的话呢,我们创建一个给它给扔上去。就在这儿。新建一个。Fair。嗯。Jackson fell。然后finish啊,我们复制一个简单的Jack fair过来啊。这执行起来呢,会稍微的快一点。OK。
08:00
复制过来,然后呢,我们是想要呃,在多分支下去完成构建,那么所以我们在这儿啊,稍微的有一点区别给它啊,比如说这这个拉取代码,我们这儿呢,是在。啊,这是在这个分支上。然后保存一下。然后把它提交到闷分支,闷的这个分支上。那走。OK,现在是提交到master上了,对吧,然后把它给它挪过去。然后给他合并一下。嗯。批准。嗯,这里是有冲突吗?啊,我这个我搞一下啊,那么同学们好了啊,这个啊,我们现在呢,在这个闷之下,大家看这有一个啊,我给它给搞进来了,然后呢,这stage呢,我写的是的拉取代码,然后我们在master分支。
09:09
也有这个也有这个文件就是master拉取代码,你要注意啊,这个文件是区分大小写的,刚才这个冲突啊,是因为我刚刚我之前做测试的时候上传过一次啊,然后文件呢,我们现在已经准备好了,然后让他再重新的去给我们干一下。啊,现在还是找不着对吧,然后立刻干。然后再看一下这个日志。哎,你看戴一的这个Jack找到了,然后呃。啊,不是这个嫩分支的找到了,然后master分支的也找到了,对吧?啊,OK,这就是一个多分支的,呃,流水线的任务,然后我们再回到这个blue ocean的界面,大家看啊,这个Java project,这是我们刚刚创建的这个多分支的项目,你点开之后呢,和之前的项目就有点不一样了,这就能显示出来分支了啊,这是活动,然后在这点分支一共有两个,一个是闷,一个是master。
10:11
然后我们可以在这儿呢去执行构建。啊,执行这个呃,单独去执行每一个这个呃,分支的构建,或者是让它整体的去呃,重新重新的去运行一下。你看在这儿呢,有一个重运行点一下,让它重新运行一下,这是master分支,然后这个闷分支啊,也可以让它重新运行一下。然后这个结果呢,我们在这儿可以看,这是men去拉取代码,然后执行的构建。然后我们再退回去。Master分支去拉取代码执行构建,那么这样就可以做到多个分支,然后分开来执行不同的构建了,那么这种方式呢,它必须得基于这个fair,这也是我们去学习呃,去编写这个呃,这个脚本的这种呃,这种方式的这种呃比较大的意义吧啊,因为在传统的这种UI上啊,我们想要做这种事的话,呃,还是比较麻烦的啊,而且不同分支呢,我们去做这种配置啊,这这在这个传统的UI界面里边也是不行的啊。
11:21
嗯,这就是这个。它的这个多分支项目哈。嗯,然后我们再切回到它这个主界面,大家可以看到啊Java project嘛,对吧,啊这个UI啊,它有时候可能刷新不及时是吧,然后在这个分支这呢,想要去单独执行某一个分支,而不是去呃,这个这个。从他这个活动里边去做这个回放的话啊,这个回放的意思就是把之前运行的这些,呃,脚本呢,再重新给运行一次,在这里边呢,可以去完成一个新的这种,呃这种运行,你看把鼠标放在这儿。
12:01
这边呢,就有这个运行这个按钮了,你点一下哎,这是在执行我们这个闷分支。啊,然后再退回去,在这儿呢,是。诶,执行我们这个master分支,这多分支,但是是同一个项目哈。
我来说两句