【把玩Azure DevOps】Day8 CI/CD从这里:设定第一个Pipeline(成功与失败)

前一篇文章介绍了Pipeline的范本与编辑介面,并且比较了.NET Desktop范本与Starter范本的内容,这一篇用Starter范本来介绍Pipeline执行之後的介绍与显示的资讯。

如果是在Yaml编辑介面按下Save and run,那麽应该会直接来到执行的画面,有下面两种可能(成功或失败):

https://ithelp.ithome.com.tw/upload/images/20210920/20033961ObozWQv5SS.png

如果是新建立的组织帐号,很有可能在建立Pipeline的时候会碰到第一张图的失败画面,其中红字的讯息内容是「##[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request 」。

在我的经验中,不应该在这个这麽简单的范本执行的Pipeline会碰到问题,加上看到关键字「 No hosted parallelism has been purchased or granted. 」,所以我马上看了一下Project Settigns和Organization Settings中相关的设定:

https://ithelp.ithome.com.tw/upload/images/20210920/200339615pv1gY4G68.png

https://ithelp.ithome.com.tw/upload/images/20210920/20033961rk2EV3Bkzk.png

上面的Project Settings中可以看到在Parallel jobs设定的Microsoft-hosted(云端agent)表格中并没有显示1800分钟的字样,但是在Organization Settings的Billing页面仍然可以看到MS Hosted CI/CD那一列的Free底下写着1800 minutes。

看到这里就让我觉得非常奇怪,因为印象中Project Settings里面的内容应该会写着目前已经使用了多少分钟数(占1800分钟多少),所以我只好使用我自己平常在使用的帐号看了一下,正常应该是会像下面这样:

https://ithelp.ithome.com.tw/upload/images/20210920/20033961kx7VsfAFOc.png

看到这里,我思考着是不是有哪里变成需要额外设定才会让Project拥有这1800分钟的可执行时间,翻着微软官方的网页,来到这个页面中看到了下面这一段文字:

Note
We have temporarily disabled the free grant of parallel jobs for public projects and for certain private projects in new organizations. However, you can request this grant by submitting a request. Existing organizations and projects are not affected. Please note that it takes us 2-3 business days to respond to your free tier requests.

注意
我们已暂时停用针对公用专案和新组织中特定私用专案的并行作业免费授与。 不过,您可以提交要求来要求这个授与。 现有的组织和专案不会受到影响。 请注意,这会让我们以2-3 个工作天回应您的免费层要求。

因为我为了参加铁人赛所准备的帐号就是最近才新申请,所以对应上面的这段叙述就是答案了。叙述中也提到可以提交申请把这1800分钟再开放,连结进入之後是一个填写的表单如下,只需要填写Email和Azure DevOps的组织网址,并且选择要申请的是私有的Project还是公开的Project就可以了,等待大约3个工作天即可。(我已送出,不过碰到了连假…)

https://ithelp.ithome.com.tw/upload/images/20210920/20033961Cbci8dWQtB.png

这算是意外的插曲,没想到最近新申请的帐号会碰到这样的问题。还好,我原本就有在使用Azure DevOps,所以暂时在我平常用的帐号中建立一个Project来继续铁人赛的文章并不是什麽大问题。下面这张图就是同样使用Starter范本执行成功的画面:

https://ithelp.ithome.com.tw/upload/images/20210920/200339615xR4OJfPkm.png

左边的清单代表着是Pipeline中定义的stage、job、task,以这里的例子就是只有一个job,底下有几个task,当task成功被执行的时候会显示绿色的勾勾,前後灰底白色勾勾的则是Pipeline预设的工作。右边黑底白字的部份则是每个task显示log的地方,从左边点选不同的项目会显示不同的内容。

像下图我点选了左边的Run a one-line script项目,右边就会显示相关的内容。而Run a one-line script则是在Yaml中Task设定的displayName属性内容,右边第14行输出的Hello, world则是script执行的结果。(我特别在右下角贴上相关的Yaml内容可以对照)

https://ithelp.ithome.com.tw/upload/images/20210920/20033961qOPCRRQiiS.png

看完上面这些执行的画面内容之後,我们回到一般正常从Project左边的Pipelines进入会看到的画面:

https://ithelp.ithome.com.tw/upload/images/20210920/200339615Zds6m1Ejn.png

通常查看Pipeline的方式都是从Project左边选单点选Pipelines底下的Pipelines(又来了,好绕口),右边就会列出Project中已经定义过的Pipeline清单,每一列是一个Pipeline,会显示最近一次执行的结果是成功(绿勾勾)或失败(红叉叉),以及最後一次执行的时候是由谁触发(Trigger)以及该次取得Repo中的Commit讯息文字,最右边则是最後一次执行的时间和查询当下隔了多久、执行花费了多少的时间。

点击Pipeline名称之後可以进入查看过往执行的列表如下图:

https://ithelp.ithome.com.tw/upload/images/20210920/20033961QsuUL2oqYD.png

可以再点击不同的Run进入查看该次执行的细节资讯,点击最下面Jobs底下的Job就可以进入到执行时的资讯,也就是上面左右区分,右边是Task的log资讯的画面。

https://ithelp.ithome.com.tw/upload/images/20210920/20033961dw42uThmSp.png

https://ithelp.ithome.com.tw/upload/images/20210920/20033961PnihUkB9CL.png

回到Pipeline列表的画面,当滑鼠移到Pipeline右边时,可以叫出隐藏的选单,从选单当中可以对Pipeline执行一些操作,除了编辑Yaml档(Edit)、删除Pipeline(Delete)、执行Pipeline(Run pipeline)之外,Manage security则是设定哪些人或群组可以检视或执行这个Pipeline(这部份後面的文章再说),以及重新命名这个Pipeline(Rename/move):

https://ithelp.ithome.com.tw/upload/images/20210920/20033961SsPungYRlW.png

Select folder的部份则是可以建立虚拟的目录来将Pipeline归档,它并不会实际在Repo中产生资料夹,Move指的也是将Pipeline在这些虚拟的资料夹中移动,这部份在这边就不另外操作截图了,看看後面的文章有没有机会再提到。


<<:  [05] 挂telegram机器人的hook

>>:  Day 16 - 研习计画起源与菜鸟业师面试学生篇

浮点数和整数的计算,Ruby 30 天刷题修行篇第十三话

大家好,我是 A Fei,大天要来解甚麽题目呢?让我们看下去: (题目来源:Codewars) A ...

Day 14多子元素元件Multi-child

昨天介绍到一半,今天继续把剩下的多子元素元件介绍完。 ListView (一)介绍 透过 scrol...

ASP.NET MVC 从入门到放弃 (Day4) -C#运算值介绍

接着来讲讲常用的运算值.... +加 1+1=2 -减 1-1= 0 *乘 2*2=4 /除 2/2...

比尔盖兹的养鸡理论与台湾鸡农养鸡经验谈

比尔.盖兹旗下的基金会曾经对贫穷国家献计改善,他的策略就是「养鸡」来脱贫,但有人觉得比尔.盖兹是不是...

Day02 - 用 canvas 做渐变色涂鸦笔

今天想做色彩渐变,角色很单纯只有笔刷一位,预计做出的效果是在网页上用滑鼠涂色,让笔刷跟着滑鼠游标移动...