【把玩Azure DevOps】Day17 CI/CD从这里:Pipeline设定Schedule,每日晚上排程执行

现在有不少的软件会有一个特殊的版本叫Nightly,从字面上的意思就可以得知是指每个晚上发行的版本,而这个每晚发布一个版本基本上都是靠Pipeline在晚上的时候执行build的动作,完成之後将该版发布出来,是一个比alpha、beta这些迭代更快速的版本,如果要达成这样的排程设计,在Azure DevOps Pipeline上要怎麽做呢?

在Azure DevOps要设定排程执行Pipeline其实有两种方式,一种是Yaml内透过文字设定的方式,要透过cron语法来进行设定,可以参考官网的说明页面。另一种是透过UI的介面进行设定,在官网说明页面上称为「传统(classic)」的设定方式。

这边我们不透过Yaml的方式来做设定,使用比较简单的UI进行操作。(注:UI定义的排程优先於Yaml排程)

首先,来到Edit Pipeline来到辑编画面之後,同样右上角的地方将隐藏的功能选单叫出来,然後按下Triggers进入设定的画面(没错,不是Settings,我觉得Triggers更适合叫Settings,因为Triggers里面的设定比Settings里面可以设定的项目更多):

https://ithelp.ithome.com.tw/upload/images/20210929/200339616QYVnh5ChO.png

接着会进入到Triggers的设定画面,在左画面的Scheduled右边有个「+ Add」可以增加Schedule排程的设定,会在Scheduled下面多一列设定,而设定的内容则是显示在右画面:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961E9BcawzeGA.png

从上图右画面可以看到设定方式非常简单,只需要勾选星期几要触发,并且设定触发的时间。如果勾选下面的Only schedule builds if the source or pipeline has changed,系统可以避免在Repo内容或Pipeline设定没有变动的时候触发,可以节省资源。

如果需要设定多个不同的触发条件,例如:星期一到五的工作日是早上6点排程建置,六、日两天则是凌晨1点进行Build的动作,甚至是不同时区的时间设定触发,只需要在左画面再度按下「+ Add」新增规则即可:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961D3GkV5KEHu.png

至於右画面时间设定的下方Branch filters设定则是对应上方的Only schedule builds if the source or pipeline has changed勾选设定使用,让Schedule判断所选的分支内容是否有异动,并不影响Yaml内的Source存取(两者无直接关系)。

从Pipeline的Runs清单中则是可以看出来不同Run是由排程触发、CI触发还是人为手动触发执行:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961jGIUJwpS82.png

像我们公司就有Pipeline是设定中午休息时间执行一次,凌晨执行一次,分别对应当天上午的Commit与下班後到隔天上班前的Commit建置结果。


<<:  Day14 NodeJS-NPM I

>>:  Day14 Custom Hooks

GKE (一)

GKE简介 今天要说的是GKE GKE是什麽?由於近年微服务崛起使用k8s的需求大增,衍生各大小公司...

追求JS小姊姊系列 Day26 -- 不是被已读,而是JS回覆你却没看到:`console`

前情提要 说明了不论是工具人或是姐妹,都有存活的范畴,以及背後的原理。 我:累了,仔细回想起来,好像...

全端入门Day02_何谓全端之前端首篇

今天要来介绍全端 全端的意思简单来说就是前端+後端,那什麽是前端什麽又是後端呢? 今天就先为大家介绍...

专案管理基本功

战略 组织战略通常包括一系列旨在实现长期目标和实现愿景和使命的举措。 战略投资组合 一个专案可能在三...

初学者跪着学JavaScript Day3 : 变数Variable、宣吿var

身为不会讲客家话的纯种客家人,接下来的日子每天学一个客家话单字,希望28天後客语也可以同时变强 最近...