在TeamCity构建期间将DLL提交到SVN

时间:2014-03-07 10:34:07

标签: svn msbuild teamcity

我希望SVC存储库中的一个项目的TeamCity构建过程将其DLL复制到存储库中另一个项目的“lib”子目录中,然后提交。

应使用VCS结帐规则将其目录更新的项目“映射”到TeamCity结帐目录中的子目录:

+:proj1/trunk => /
+:proj2/trunk => /Downstream/proj2

在.sln文件上使用MSBuild构建proj1后,我可以使用命令行构建步骤将我需要的proj1二进制文件复制到proj2子文件夹中:

robocopy bin\Debug Downstream\proj2\lib file1.dll file2.dll file3.dll

我的问题是Downstream / proj2不是SVN工作副本,所以我无法从中运行SVN提交。

如何从TeamCity执行SVN提交 - 要提交的工作副本在哪里?我应该从VCS结账规则中省略proj2,并在复制和提交之前在我的命令行步骤中查看它吗?

TeamCity的工作目录已经删除了.svn似乎很奇怪。

1 个答案:

答案 0 :(得分:2)

答案是将SVN客户端安装到我的代理上,并将构建配置的VCS Checkout模式更改为“Automatically on agent(如果VCS根支持)”。如果在“自动在服务器上”完成检出,则仅复制导出(不包含.svn目录)。

在构建代理的工作目录中给出一个工作副本,然后我可以执行非交互式命令行签入。

一个问题:因为我正在提交到正在由同一构建配置检出的存储库中的项目,所以我必须编辑我的触发器规则,如果提交是由提交,则不会自动启动构建配置正在进行自动提交的非交互式用户。幸运的是,我意识到它只在循环中循环了3次:))