是否有可能强制teamcity在将必要的数据传递给构建代理之前执行某些命令?

时间:2012-02-02 00:12:31

标签: svn teamcity

Teamcity允许设置构建代理的行为。但是,在收到SVN的所有更新后,团队城市开始与构建代理进行通信之前,我能以某种方式运行某些命令吗?

1 个答案:

答案 0 :(得分:2)

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

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

  • 将.exe文件放在代理
  • 使用coommand行插入构建步骤,该行将在目标构建配置的第一个位置生成xls。

因此生成的工作流程将如下所示:

  • 代理从SVN收到更新的数据
  • 您的工具已启动且已生成xls文件
  • 构建配置继续工作

缺点:

  • 您需要在所有代理上维护该工具。

第二(更复杂,但更稳定)

  • 使用您的工具在同一主机上创建新的构建代理(我称之为 xls-agent )(例如,托管TeamCity本身的服务器)
  • 创建新的构建配置(我称之为 xls-producer ),只需一步即可启动该工具
  • 设置工件发布以发布生成的xls
  • 将配置 xls-producer 限制为 xls-agent
  • 在目标构建配置中,添加两个依赖项: xls-producer 上的快照和工件。确保“Get artifacts from”设置为“来自同一链”

因此生成的工作流程将如下所示:

  • xls-agent 使用svn版本X运行 xls-producer
  • 目标配置从 xls-producer 工件
  • 下载xls
  • 目标配置与rev X完全相同