Svn 是否有可能强制teamcity在将必要的数据传递给build agent之前执行某些命令?

Svn 是否有可能强制teamcity在将必要的数据传递给build agent之前执行某些命令?,svn,teamcity,Svn,Teamcity,Teamcity允许设置构建代理的行为。但是,在teamcity从SVN接收到所有更新后开始与构建代理通信之前,我是否可以运行一些命令?不幸的是,您只能在代理上运行的构建内部执行命令。 有几种方法可以实现你的目标 首先(简单,但“肮脏”): 将.exe文件放在代理上 在目标构建配置的第一个位置,插入一个带有coommand行的构建步骤,该行将生成xls 因此,生成的工作流将如下所示: 代理从SVN接收更新的数据 工具启动并生成xls文件 构建配置继续工作 缺点: 您需要在所有代理上维护

Teamcity允许设置构建代理的行为。但是,在teamcity从SVN接收到所有更新后开始与构建代理通信之前,我是否可以运行一些命令?

不幸的是,您只能在代理上运行的构建内部执行命令。 有几种方法可以实现你的目标

首先(简单,但“肮脏”):

  • 将.exe文件放在代理上
  • 在目标构建配置的第一个位置,插入一个带有coommand行的构建步骤,该行将生成xls
因此,生成的工作流将如下所示:

  • 代理从SVN接收更新的数据
  • 工具启动并生成xls文件
  • 构建配置继续工作
缺点:

  • 您需要在所有代理上维护该工具
第二(更复杂,但更稳定)

  • 使用您的工具在同一主机上创建新的构建代理(我称之为xls代理)(例如,承载TeamCity本身的服务器)
  • 创建新的构建确认(我称之为xls producer),只需一步即可启动该工具
  • 设置工件发布以发布生成的xls
  • 将配置xls生产者限制为xls代理
  • 在目标构建配置中,添加两个依赖项:xls producer上的快照和工件。确保“从中获取工件”设置为“来自同一链”
因此,生成的工作流将如下所示:

  • xls代理使用svn修订版X运行xls生产商
  • 目标配置从xls producer下载xls
  • 与rev X完全相同的目标配置

如果您详细说明您要实现的目标,您将有更好的机会获得答案。好的,我想对数据库运行增量脚本。这样做没有问题:我将teamcity设置为build agent接收并执行所有脚本文件的方式。但我想在teamcity从SVN收到最后更新后运行*.exe文件。此exe文件应创建xls文件,然后应将其传递给构建代理(以及所有脚本)。所以问题是运行exe文件(它将创建xls文件),因为我无法拆分这两个操作:1)从SVN接收最新数据,2)将数据传递给构建代理。