如何将Teamcity的构件复制到另一台服务器?

20

我该如何将TeamCity中的构件复制到另一个服务器上? 谢谢

4个回答

11

我处理这个问题的方式,可以让事情变得更容易。设置另一个配置,通过构件依赖项获取所需的所有文件,然后运行cmd脚本将文件复制到网络上的另一个驱动器。你可以使用cmd脚本、vbs、python、shell等来实现。

  • 记住,你只需要像在本地一样引用目录,因为你的脚本和工作目录相同

例如 cmd脚本:xcopy .\"我的构建构件(s)" \path\to\drive\on\my\network\"我的构建构件"

没有比这更容易的了。

当然,如果你的构件非常大,那么你可能需要考虑更复杂的选项。不过,TeamCity目前有一个待处理的票,你可以投票支持,它允许你在一个配置中运行多个runner - 所以你可以将cmd脚本添加到同一配置中,以节省复制时间;如果你能抽出一分钟,请投票:

http://youtrack.jetbrains.net/issue/TW-3660


7

有一个Deployer插件,支持通过文件共享/SMB、FTP、SSH等方式进行部署。它的使用方法与构建工件路径的使用方法基本相同。

我们只使用了Samba,因此您必须输入以下信息:

  • 目标主机路径://server/drive/myfolder
  • 用户名:mydomain\myusername - 在我们的情况下,我们还要在此处写入域名
  • 密码:****
  • 域:mydomain

在路径中,就像在构建工件中一样,只需选择文件即可:

product/* => product.zip

它将创建文件//server/drive/myfolder/product.zip。


5
你可以从你的构建脚本或外部进行操作。

感谢您的迅速回复。您能告诉我如何运行这个外部命令吗?/repository/download/BUILD_TYPE_ID/.lastSuccessful/ARTIFACT_PATH - Raul
这不是一个命令,只是你应该使用的URL的一部分。通过添加服务器URL和端口来创建完整的URL,并使用类似wget或curl的工具或任何其他能够执行HTTP下载的工具来使用此URL。 - CrazyCoder
你能告诉我如何在MSBuild脚本中指定复制任务的服务器目标吗? - Raul
我不明白你需要什么,如果你想从代理上运行的构建中复制工件,则请参考MSBuild文档。如果你想要另一种方式,那么编写一个工具,通过HTTP从TeamCity服务器获取文件,就像我上面描述的那样。 - CrazyCoder
@CrazyCoder,您能否详细解释一下如何做到这一点?因为我是Team City的新手,不太确定。 - programoholic

0

如果您想将来自远程构建代理的工件复制到主TeamCity服务器,则可以在“常规设置”下配置“构建工件”。

根据TeamCity关于BuildArtifacts(http://confluence.jetbrains.com/display/TCD7/Build+Artifact)的维基条目,“在构建完成后,TeamCity根据指定的工件模式在构建的检出目录中搜索工件。然后将匹配的文件上传(“发布”)到TeamCity服务器,在那里它们可以通过Web UI下载或者在使用工件依赖项的其他构建中使用。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接