00:00
那我们做的第一步拉取代码完成以后,那接下来我们做其他事情之前来再来讲一个金克S里边的功能叫参数化构建,为什么会有参数化构建,因为我们每次构建流水线的时候,我们比如给它打包发布,我们可能呢要自定义它的这个镜像的版本,要做一些数据,我们要自己来输入,根据我们输入的数据来决定该怎么构建,所以这就是我们说的参数化构建,那参数化构建在金s file里边就非常简单,你使用primemeters来标注我们的这个金S里边,可以让外边接收几个参数进来,所以外边呢就会来输入这个参数,当然如果没有的话,参数默认值是什么,你也可以来指定,那你这样一指定参数以后,你在后来呢,就可以用到这些参数了,比如我举一个例子,我在这呢,可以用的时候,我用SH,然后呢,我给它打印上,把这个参数的值给它打印出来。
01:00
我们都可以这么来用,那我呢就先来测试一下参数化构建,那参照我们之前的这个s fair好,我把这个parameters,我CRC我复制过来,来放到我们的这一块,不用放到任何阶段里边,我们就叫parameters,好,这是参数化构建,比如参数化构建里边有一个tagname,我们也不叫tagname了,我们就叫project version,我们就是这个项目的版本。比如我来写一个project version,我们项目版本,这个呢,我们希望是外边来接收的这个参数,那如果你没给的话,那么这个版本呢,比如我们就叫V0.0的一个这个贝塔版,好我们来写一个这个,所以呢,我现在相当于准备让外边接收一个这样的参数,那它怎么能生效呢?我们来给大家示范一下,好,我把这一段我复制过来,来到我们的这个流水线里边,好我来重新来编辑一下流水线,让大家看一下效果,我们来到我们的这个流水线,我直接来编辑流水线的金费在他的agent下边,我把我们的这段参数拿过来,这是我们的这个参数,这个呢,我们是参数化构建要用的,所以你只要运行我的这个流水线,我就会提示你要输入这么一个参数,然后呢,输入完了以后,我再来,接下来做其他的各种阶段都行,我来点一个确定好,然后呢,我们来给大家看一下现在的效果。
02:28
我们来到我们的这个流水线,如果我来点击运行这块呢,它启动,它没有提示我们的这个参数,我们看一下我们这个流水线有没有编辑完成,一定要保证它这一块好是确定保存好的,然后我们回到最外边,回到最外边这是我们古丽麦Cscd的这个流水线,然后呢,我们现在来重新来运行一下这条流水线。来到这儿,我来点击运行好,我们发现呢,现在它就提示我们,诶它根据这个流水线的金fair里边有一些参数,诶让我们得有的填,那我们填了一些参数以后呢,这个参数我们就能取到,那怎么取呢?我们给大家来示范一下,比如我现在来到编辑流水线,在这个步骤里边,我再添一个步骤,我添一个什么步骤,就是咱们的这个sharell脚本,然后呢,我让它在里边呢,把这个流水线的值输出一下,Echo怎么输出,我们直接使用Dollar符来引用就行了,我们刚才流水线的这个参数叫project version,我们就来引用,引用一下这个project version,我们看它能不能输出这个值,我来点击确定好,我们现在再来确定保存,我们现在重新再来测试一下这个流水线,那么新填的这个最好呢,我们来刷新一下,我来刷新一下,刷新一下以后呢,我们可以看一下我们刚才的这段脚本,它是怎么整的,其实就是steps里边,然后呢,又运行了一个SH,然后呢给我们。
03:51
输出了一个内容,内容呢,就是我们这个prime这个参数里边的内容,好来重新来点击运行来看一下效果好,那么这个流水线的版本号,我写了一个贝塔111好,我点一个确定,那么这个流水线只要运行完了以后,来看一下它的日志里边有没有输出这块纸的值,好那们现在来查看日志,查看日志的第一步,第一步呢,他先去拉取我们的账号密码,按照我们这个马云的账号密码,先来拉取我们的代码,那拉取完了以后呢,它会输出SH啊,我们来看一下SH输出,诶E口,诶我们发现呢,它已经输出了我们这个自己输入的这个值,所以呢,我们就可以让我们的整个流水线也能接收我们的动态输出,那既然这样,我就需要做一个功能,什么功能,大家来看一下,我们现在呢,默认拉取的这个古励商城这个代码古励ma里边呢,其实有非常多的微服务,我们每次运行流水线并不一定要所有的微服务全限升级。有可。
04:51
能呢,我只升级这个古mail cut或者古ma的getway,所以呢,我们想只升级某一个服务,我们就希望在流水线开始的时候,你给我输入一个你想要构建哪个微服务来部署务,那我们呢就给你构建,所以我现在可以来加一个这个参数,那我来到我的这个流水线编辑里边,好还是我们的这个活动,然后我们来编我们的这个流水线编辑金s fair,这个流水线呢,一个参数不够,我再来一个参数CTRLC,然后呢粘下来,接下来还有一个叫project name。
05:28
Project name,那就是我们现在要输入的这个要构建的这个项目名,那默认呢,我们可以给它为空,那默认呢,就没有,你输什么就是什么,我来点一个确定,只要我这个流水线改了,我来重新刷新,我一运行,你现在呢,流水线上就得给我输上两个东西,诶这一块没感知到,我们来稍等一下,我们多来刷新几下,这块还没有的话呢,我们来确认一下,编辑这个流水线project name,诶确实已经有了,我点一个确定啊,重新一保存,然后呢,我们来从我们的这个流水线这一块重新进来,来确认一下,我们这个流水线一定要呢有我们的这个参数,我们现在来点击运行,那发现呢,这还没有,没有的话,我们来到这儿,这有个更多操作,我们可以来编辑流水线的配置,我们在编辑配置的时候,我们发现一开始呢,它其实都有这个参数化构建,那么除了有这个project version外,那还可以给它再来填一个参数,而这个参数呢,我现在变成一个选项参数,这个参数呢就叫。
06:28
把project name ctrl c复制过来,我们对应流水线文件里边的这个project name到底有几个选项参数,我们应该把我们所有的这个微服务全部配置到这儿,比如国mail,第一个购物车,然后呢,还有一个国mail,比如我们的这个商品服务,好我现在随便写两个参数给大家来示例一下,我点一个确定,那这样我们来运行的时候没呢,就能选两个参数,那这两个参数能不能用到来编辑金克fair,因为我们这有个project name,如果它用到了,我们再来打印一下project name,我把这个SH再给这来写一个,除了打印version外,我们再来打印一个project name,好,我把它弄过来,Dollar服来一个打印,这个叫project name。
07:18
好,来点一个确定,我们这个流水线文件就编辑好了,编辑好以后呢,我们现在重新再来测一下流水线,看我们能不能打印到我们想要的两个值,我点一个运行,然后呢,我们这个版本我写一个V,比如我写一个1.0,然后呢,我们现在构建哪个服务,我选一个project,那注意这一块能有选项是我们自己在外边在这配置流水线的时候,告诉我们这个参数呢是一个选项,但实际来到我们这个流水线文件里边,它只是呢一个string接收我们变量的值,所以你外边选了值以后,我里边呢,只要是同名变量我就接收到了,那接收到了以后呢,我们就能打印,看是不是这个样子,我点一个运行,好,我们现在来写一个V 1.0,然后呢,我构建的是project,我们来点击确定,我们来进去看一下我们现在的运行效果,我们来稍等它初始化,好,现在呢,我们这个流水线正在运行,来查看日志,只要它的这个gate拉取完了以后,我们加。
08:18
来就会打印上我们的项目的名,还有我们的版本,我们都可以打印过来,好,这个运行三个们来看一下,先是第一个我们输出的这个版本是V1.0输出的名字,诶古ma project,好,那现在我们的金fair就变成这样子了,我现在呢,可以用参数化构建,我把这一块复制过来,我们现在会准备两个参数,这两个参数呢,可以让外界给我们来输入,输入我们的项目名和我们这个项目要构建的版本号,那这个输完了以后,我们后边的构建都会用到,而且呢,我们SSHSH,我们可以把这个输出来,我们SH可以输出来,我们把这一句话大家拿过来给大家看一下,你在任何地方,你想要用,直接拿这个变量来用就行了,刀了,我们这个直接来用,那我们就在这个gate下边,我们想要输出也是没任何问题的,好,我们来输出。
09:14
包括输出的时候呢,好,我们在这儿来让他输出上两个,然后呢,将要构建,正在构建项目正在。构建正在构建呢,我们这个项目,这个项目。这个然后呢,它版本号版本号版本号是多少呢?我们也来打印一下Dollar了,咱们的这个project version也是从外边拿过来的,所以完全可以呢,用echo的方式把这个整个打印出来,那这一句话我来复制过来,替换一下我以前的这个金sfi流水线文件,大家再来看一个最终这样的效果。那只要我们这个代码拉取过来,我就会给你打印,诶我正在构建这个项目,版本号是什么?来点一个确定,然后我们现在再来点击一个运行我们的这个流水线,版本号V,咱们的2.0,然后我呢要构建的项目是什么?诶在这呢,运行它不成,我来刷新一下,我们来到我们这个流水线,我们来点击运行这块呢,要一定能选择,那是在我们的这个配置里边,我们要配置的这个。
10:22
默认值,它这个默认值呢,是变成了一个string给感知过来了,我们可以在外边让它呢,变成一个我们的选项方式,把这个删掉,我们点一个添加参数,你变成一个选项,选项呢名还是你这个名,只不过呢,这是一个选项,比如我们的鼓励mail,第一个是商品服务,然后呢再来果粒mail,第二个呢是我们的购物车服务,然后还有什么果粒mail,第三个是什么。比如我们就叫秒杀服务,好现在呢,你可以来选中三个选项,你现在再来点击运行,然后呢,我们再选一个版本以后1.0,我们来再选一个选项以后,我来点击确定我们这个流水线呢,就运行了,一运行以后呢,它就会给我们先拉取代码,再打印呢,我们现在正在构建我们哪个项目,我们就来稍等一下,好,我们看到这个流水线正在运行,来稍等一下,好这两个任务呢,现在全部成功,我们来到share这一块,诶我们正在构建古ma cut版本号是多少没问题,那我们呢,现在流水线就变成这样,我们引入了参数化构建,同样的把我们以前的这个里边,还有我们构建期间的环境变量,我直接呢把这个复制过来,这个环境变量呢,还是非常有用的,我们后来的一些参数,我们需要动态传,或者我们是使用我们既定的配置,配置好的我们就可以把这个环境变量把它复制过来,我们先来到我们的这一块,把我们的环境变量再来粘贴过来。
11:51
这是我们说的环境变量,环境变量里边有非常多,比如doer help ID,那么后来会把我们的代码打包到doer help,就是做成镜像放到这儿,还有我们的GIHUB它的这个ID,那我们现在呢,不叫giar HUB了,我们现在是GIE的这个ID,那现在是传马云的,所以我们应该是GIE,我们在外边我们引用了一个马云的GUEID,然后呢,我们的库conf,这是默认的,包括我们的仓库的地址,以及我们仓库这一块都是一样的,Giar HUB的账号,我现在呢变成马云的账号,现在呢马云的账号我也叫雷锋阳,然后APP内这个APP name呢,我们就不写了,因为这个APP name是我的这块参数化构建里边我的这个项目的名字,所以我把这个APP name留在这儿,所有用到APP name的地方,我们以后呢,都要写项目名,然后我们sna cube的这个。
12:49
ID,我们也可以用以前这个默认的方式,让我们把代码提交到sona cube里边,他帮我们来进行代码分析都行,好,我们的环境变量在这也准备好,包括呢,我们在这儿改了以后,那就来测试一下,在流水线里边,环境变量在流水线里边你后来不用,那就没啥用,所以呢,我们这个先在流水线里边把这个环境变量来配好,不是这个编辑配置,来到这个流水线编辑它的金cases文件,然后呢,这是他们构建期间要用的环境变量,我们都给它准备好所有的环境变量,当你何时想要用环境变量,你都可以在这儿来打印一下,比如我们在这儿打印,然后呢,构建的版本号,然后呢,将会呃,将会提交给提交给哪个镜像仓库,镜像仓库。
13:38
这块的详细信息呢,都可以打印,比如我们镜像仓库呢,这是registry,就是docker这个IO,所以我们就来提交给他,我们可以来使用Dollar符把这个呢取出来,这都是没啥问题的,来点击确定我们的环境变量和所有的这个参数,我们都能在这儿来进行修改,完了以后我再来点击运行。然后我们这一块呢,如果你想要运行,那我们的这个配置文件,你每次只要变了以后,配置文件就自动的根据你的金克S非要适配了,好我们在最终拉取的时候,我们再来把它写过来,现在我就不一个一个改了,我们自己手动输,现在我来点一个运行,比如我们的这个就叫鼓励麦啊,我们现在还有一个项目叫hello,我点一个确定,那再来运行一下这个流水线,保证我们的这个环境变量也一定是能取出来的,给大家看一下,好这一块呢,运行成功来查看日志,这日志里边诶,我们的所有参数化构建的值,环境变量我们都可以来取出来,所以以后我们一些公共的配置信息,我们就可以要么参数化,要么环境变量我们放到这儿。
我来说两句