TeamCity : 自动触发 Build

创建了 build 的配置以后,您既可以手动点击 "Run" 按钮来触发一次build过程,也可以通过 Triggers 配置实现自动触发 build 过程。一个 trigger 就是一条规则:当某个事件发生时开始一次 build。TeamCity 内置支持多种触发器类型:

对于同一个 build,我们可以应用多个触发器,它们会按照各自的逻辑独立的起作用。下面我们比较详细的看下各类触发器的用法。

VCS 触发器

VCS 触发器在检测到代码变化后会自动触发 build 过程。TeamCity 会根据您设置的时间间隔去检测代码的变化。如果这段时间中有多个 checkin,仅触发一次 build。

需要注意的是当一个 build 配置有多个 VCS root 时,并不会为每个 VCS root 的变化触发 build,而是在检测过所有的 VCS root 后才决定是否触发一次 build。
您还可以设置每个 checkin 都触发一次 build。这需要选择"Trigger a build on each check-in"。如果您希望同一个提交者的多次提交只触发一次 build,请把"Include seral check-ins in a build if they are from the same committer"也选上。

静默期(Quiet Period)是个比较有趣的概念。设置后便不会在连续的几次 checkin 过程中触发 build (这几次连续的checkin是一个完整的过程)。通俗点讲,当检测到最后一次变更后的一段时间(默认一分钟)内没有发现新的变更才触发一次 build。

VCS 触发器中还有个好玩的东西叫"VCS Trigger Rules"。通过规则的设定,你可以告诉 TeamCity 是否满足触发 build 的条件:

Schedule 触发器

当我们要定时触发 build 时就需要用到 Schedule 触发器。

简单的使用方式就是在 Date and Time 区域选择合适的时间配置就可以了。此外 TeamCity 还支持 cron 格式的时间设置:

这为我们提供了更多的灵活性。

Finish Build 触发器

如果 build 之间有一定的依赖关系,比如后面的 build 依赖前一个 build 的产物,那么就需要在前一个 build 完成时触发下一个 build。Finish build 触发器可以完美的完成这个任务:

只需要选择合适的 build configuration 就可以了。我们还可以根据前一个 build 是否成功来决定是否来触发下一个 build:

Branch Remote Run 触发器

当我们希望在 TeamCity 上 build 某个个人分支时就需要通过某个分支上的变更来触发 build。Branch Remote Run 触发器可以实现这样的功能:

我们可以指定某个用户的分支。注意,这种触发器目前只支持 git 和 mercurial。

TeamCity 还支持一些其他类型的触发器,我们在用到时会进行详细的介绍。

时间: 2024-10-09 09:49:56

TeamCity : 自动触发 Build的相关文章

UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包

背景 项目上需要做UWP的自动安装包,在以前的公司接触的是TFS来做自动build. 公司要求用Jenkins来做,别笑话我,之前还真不晓得这个东西. 会的同学请看一下支持错误,不会的同学请先自行脑补,我们一步一步的来. 首先我们准备2个安装包,Jenkins,NuGet 都下载最新的好了. 1. 安装Jenkins,下一步下一步.安装好了会自动浏览器跳转到http://localhost:8080/ 如下图 按照提示去C:\Program Files (x86)\Jenkins\secrets

传统云环境下的CI/CD操作手册(六)jenkins手动构建示例及实现自动触发构建

构建项目位置/var/lib/jenkins/workspace/jenkins_project_name手动构建:1 新建自由风格jenkins项目---构建---执行shellrm -rf project1/git clone [email protected]:group1/project1.git ssh 192.168.1.17 "/etc/init.d/tomcat stop"ssh 192.168.1.18 "/etc/init.d/tomcat stop&qu

原生js自动触发事件

熟悉jquery的童鞋都知道在jq中有一个方法可以自动触发事件,那就是trigger(),那么通过原生js又怎么模拟触发呢? js中添加一个主动触发事件的方法有dispatch.该方法能模拟用户行为,如点击(click)操作等. 标准使用dispatchEvent方法,IE6/7/8则使用fireEvent方法. dispatchEvent() 方法给节点分派一个合成事件. 语法如下: dispatchEvent(eventObj) eventObj 参数是一个描述事件的 ActionScrip

Jenkins+git+webhook自动触发部署和测试任务

Jenkins+git+webhook自动触发部署和测试任务 需求: 目前上线前会将需要上线的代码push到release分支,然后由人工填写参数点击触发jenkins上的任务.希望这个过程能完成自动化,只要有人往release上推代码,就自动跑部署release分支并测试 解决办法及步骤: 1.在jenkins里需要自动触发的job里的"源码管理"部分添加设置,如下图.填好git仓库url和需要检测的分支名称 注意事项: a.在填url的时候可能会提示找不到命令的错误,遇到这个错的解

JQuery 自动触发事件

常用模拟 有时候,需要通过模拟用户操作,来达到单击的效果.例如在用户进入页面后,就触发click事件,而不需要用户去主动单击. 在JQuery中,可以使用trigger()方法完成模拟操作.例如可以使用下面的代码来触发id为btn的按钮的click事件. 1 $('#btn').trigger("click"); 这样,当页面加载完毕后,就会立刻输出想要的效果.也可以直接简写click(),来达到同样的效果: 1 $('#btn').click(); 触发自定义事件 trigger()

基于PHP的一种Cache回调与自动触发技术

背景 在PHP中使用Memcache或者Redis时,我们一般都会对Memcache和Redis封装一下,单独完成写一个Cache类,作为Memcache活着Redis的代理,且一般为单例模式.在业务代码中,使用Cache类时,操作的基本的示例代码如下 // cache 的 key $key = 'this is key'; $expire = 60;// 超时时间 // cache 的实例 $cache = Wk_Cache::instance(); $data = $cache->fetch

[ci] 基于1 上文实现拉取代码后能自动触发sonar-runner实现代码扫描评测,job1完成

基于1 上文实现拉取代码后能自动触发sonar-runner实现代码扫描评测,job1完成 ? 添加sonar插件 SonarQube Plugin ? 配置: 系统设置à告知jenkins,sonar在哪 ? https://docs.sonarqube.org/display/SONAR/User+Token How to Generate a Token To generate a token, to go?User > My Account > Security. Your exist

2015.1.10 解决DataGridView SelectionChanged事件自动触发问题

DataGridView SelectionChanged事件总是在数据源更改时自动触发,这点很讨厌. 可用CellClick和KeyUp事件和一个函数替代SelectionChanged事件 private void dvpt_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) return;//如果不是单击列表头 MySelectionChanged(); } private void dvp

自动触发事件

今天做一个页面需要自动触发超链接,第一次了解到trigger函数,可以自动触发事件,语法为:$(selector).triggger(event). 例如:$("#btn").triigger("click");也可以简写为$("#btn").click(); 但是对于超链接,我做的时候这两种方式都做不到自动跳转,暂时还不知道为什么,反而用下面的方式实现了: $("a")[0].click(); 在这过程中,学习到了两种自动跳