实战CruiseControl.NET+NAnt(二)-CC.NET中的触发器

作者:Tony Qu

创新互联专注于企业全网整合营销推广、网站重做改版、永顺网站定制设计、自适应品牌网站建设、H5页面制作商城网站定制开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为永顺等各大城市提供网站开发制作服务。

CC.NET的配置文件位于安装目录的server目录下,有个叫做ccnet.config的文件,只有配置了这个文件,CC.NET才能正常运行。

通过CCNetConfig我们可以学到很多关于ccnet.config的配置内容,首先来看一个非常重要的概念——触发器。

实战 CruiseControl.NET+NAnt (二) - CC.NET中的触发器

值得注意的是,这里的触发器都仅针对当前项目有效,这也是为什么这些trigger基本没有target,比如说IntervalTrigger,所有的属性都没有提到触发的对象,。

CC.NET提供了6种触发器:

IntervalTrigger,顾名思义,就是每隔一定时间触发任务的触发器。

FilterTrigger不能单独工作,而必须与其他Trigger一起使用,之所以叫FilterTrigger是因为它是用来过滤触发条件,例如我们原本设置了一个IntervalTrigger,每5分钟触发一次,但我只希望这个IntervalTrigger只在工作时间触发,那么我们就可以用FilterTrigger来限制IntervalTrigger的触发时间为9:00 ~ 18:00。

MultiTrigger类似于WPF中的MultiTrigger,可同时执行多个触发器,并对触发器结果做And或Or操作。

ScheduleTrigger和Windows自带的计划任务的功能非常类似,可以在特定时间触发任务。

ProjectTrigger是仅当指定的CC.NET项目build完成后才会触发任务的触发器。

UrlTrigger是仅当某个特定的Url页面的内容发生变化时才会触发任务的触发器。

 

下面来举个例子:

场景1:我希望设置一个daily build的触发器,每天凌晨1:00触发一次,仅工作日做,双休日不做(不考虑节假日)。

由于是特定时间循环触发,我们可以用ScheduleTrigger来实现,代码如下:


  
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
  

在CCNetConfig里面设置则如下图所示:

实战 CruiseControl.NET+NAnt (二) - CC.NET中的触发器

 

场景2: 持续集成需要每隔一定时间触发一次build,已确定之前的checkin都是可运行的,所以我们需要设定一个每周一到周五的工作时间(9:00 ~ 18:00)触发,并且每隔15分钟触发一次的触发器(不考虑时区、时差问题)。

这里我们需要使用IntervalTrigger+FilterTrigger,FilterTrigger是用于过滤时间的,即9:00 ~ 18:00。


    
    
        Monday
        Tuesday
        Wednesday
        Thursday
        Friday
    

在CCNetConfig里面设置则如下图所示:

实战 CruiseControl.NET+NAnt (二) - CC.NET中的触发器

场景3: 当项目A的build成功之后才触发当前项目build(通常项目A是某个核心代码库,当前项目对其具有依赖性),由于是仅当成功才触发,所以triggerStatus=Success


  
    Success
    
  

在CCNetConfig里面设置则如下图所示:

实战 CruiseControl.NET+NAnt (二) - CC.NET中的触发器


当前标题:实战CruiseControl.NET+NAnt(二)-CC.NET中的触发器
文章链接:http://pwwzsj.com/article/ppogjo.html