【问题标题】:How can I have teamcity run a .bat file on each successful build?如何让 teamcity 在每次成功构建时运行 .bat 文件?
【发布时间】:2010-01-29 10:16:28
【问题描述】:
我有一个 teamcity (4.something) 安装,它创建 .wsp 文件以部署到共享点。目前我必须将 wsp 从构建工件目录中复制到我创建的一个小部署文件夹中。在文件夹中,我运行一个 .bat,将新的 .wsp 部署到我们的测试服务器。
我可以采取哪些步骤来实现自动化?
要么将 .bat 复制到 artifacts 文件夹并更新路径等,要么从 artifacts 文件夹复制到“deploy”文件夹并从那里运行 .bat。
当谈到 MSBuild 等的复杂性(或基础知识!)时,我是一个新手......所以手握表示赞赏!
【问题讨论】:
标签:
sharepoint
build-automation
teamcity
deployment
【解决方案1】:
在最新版本的 TeamCity 中...
在构建定义中,您可以识别可以复制/压缩的工件。然后可以手动下载工件或从另一个版本 (Artifact Dependency) 引用工件。
您可以设置“构建配置”以直接从 ci 构建生成的工件进行部署。
- 创建构建以进行部署
- 构建步骤
- 运行:带参数的可执行文件
- 命令可执行文件:.bat 文件(确保它是生成的 ci 构建工件的一部分)
- 命令参数:您的补丁文件需要的任何参数
- 依赖关系
- 添加新的工件依赖项
- 依赖:选择要部署的 ci 构建
- GetArtifacts 来自:上次成功构建
- 工件规则:+:**/*.*
因此,给定的工件(如您的批处理文件)在 CI 构建中...您现在有了一个“部署”构建。当您运行它(手动或设置构建触发器)时,它会将所有 CI 构建工件复制到它的工作目录(工件依赖项),然后运行您的批处理文件进行部署。
相当漂亮。
注意:只需确保运行 TeamCity BuildAgent 的帐户有权执行所有部署工作。
希望这对某人有所帮助,因为我花了一段时间才解决这个问题;)
【解决方案2】:
我通过创建一个 nant 任务,然后让 TeamCity 执行该 nant 任务来完成此任务。这比它应该的更痛苦。您应该能够使用 MSBuild 执行与构建后事件相同的操作。