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

简介:

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

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

image

值得注意的是,这里的触发器都仅针对当前项目有效,这也是为什么这些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来实现,代码如下:

<scheduleTrigger time="1:00" buildCondition="ForceBuild" name="ScheduledTask1">
  <weekDays>
    <weekDay>Monday</weekDay>
    <weekDay>Tuesday</weekDay>
    <weekDay>Wednesday</weekDay>
    <weekDay>Thursday</weekDay>
    <weekDay>Friday</weekDay>
  </weekDays>
</scheduleTrigger>

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

image

 

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

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

<filterTrigger startTime="09:00" endTime="18:00">
    <trigger type="intervalTrigger" seconds="600" />
    <weekDays>
        <weekDay>Monday</weekDay>
        <weekDay>Tuesday</weekDay>
        <weekDay>Wednesday</weekDay>
        <weekDay>Thursday</weekDay>
        <weekDay>Friday</weekDay>
    </weekDays>
</filterTrigger>

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

image

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

<triggers>
  <projectTrigger project="task2">
    <triggerStatus>Success</triggerStatus>
    <innerTrigger type="intervalTrigger" seconds="1800" buildCondition="ForceBuild" />
  </projectTrigger>
</triggers>

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

image










本文转自 瞿杰 51CTO博客,原文链接:http://blog.51cto.com/tonyqus/1130017,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
|
3月前
|
XML Java 数据格式
javaweb实训第五天下午——xml配置文件约束报错问题
问题描述: 如果电脑连不上网,或者网速不好可能会造成Spring框架中xml配置文件出现错误。但是这个错误不影响项目的运行的;
20 0
|
4月前
|
XML API 数据库
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
|
16天前
|
安全 数据库 数据安全/隐私保护
七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法
七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法
|
16天前
|
开发框架 .NET API
七天.NET 8操作SQLite入门到实战 - 第四天EasySQLite前后端项目框架搭建
七天.NET 8操作SQLite入门到实战 - 第四天EasySQLite前后端项目框架搭建
|
16天前
|
存储 SQL 关系型数据库
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
|
4月前
|
SQL Shell 数据库
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
|
9月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(四)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面等功能的开发,今天继续讲解商品详情功能开发,仅供学习分享使用,如有不足之处,还请指正。
134 0
|
9月前
|
NoSQL 前端开发 JavaScript
MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端框架搭建
MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端框架搭建
121 0
|
弹性计算 数据安全/隐私保护
.Net Core实战之基于角色的访问控制的设计-
2年前开源了Sikiro.RBAC系统(https://github.com/SkyChenSky/Sikiro.RBAC)但是缺少了部署流程,这次通过申请免费的ECS,重新把流程梳理了下,并整理成改篇文章。 .Net Core实战之基于角色的访问控制的设计(https://www.cnblogs.com/skychen1218/p/13053878.html)