.net 如何将上游生成的二进制文件传递到远程下游生成从属文件

.net 如何将上游生成的二进制文件传递到远程下游生成从属文件,.net,windows,hudson,.net,Windows,Hudson,我们正在Windows上使用Hudson构建.NET解决方案并运行单元测试(NUnit)。因此,Hudson用于启动执行实际工作的批处理文件 我现在正在尝试设置一个新的测试,该测试将在构建从属服务器上运行,并且将运行很长时间。测试应该使用上游构建生成的二进制文件 我搜索了Hudson文档,但找不到如何将上游构建工件传递给下游从属。我该怎么做 根据您使用的源代码管理,您可能会欺骗并使用它。我不喜欢签入二进制文件,特别是如果它们很大的话。但我过去曾使用通过CI构建生成的二进制文件或安装程序,将它们自

我们正在Windows上使用Hudson构建.NET解决方案并运行单元测试(NUnit)。因此,Hudson用于启动执行实际工作的批处理文件

我现在正在尝试设置一个新的测试,该测试将在构建从属服务器上运行,并且将运行很长时间。测试应该使用上游构建生成的二进制文件


我搜索了Hudson文档,但找不到如何将上游构建工件传递给下游从属。我该怎么做

根据您使用的源代码管理,您可能会欺骗并使用它。我不喜欢签入二进制文件,特别是如果它们很大的话。但我过去曾使用通过CI构建生成的二进制文件或安装程序,将它们自动签入到单独的svn存储库中,并让从机在主机指示时从该repo中提取,并执行需要执行的任何测试。

在下游构建中使用


只需指定上游作业的名称和复制到下游工作区的路径。

如果您只依赖于二进制文件,这可能有点过分。但也有,它归档了您的整个工作区,您可以在下一个作业中检查它,就像它来自SCM一样。这是相当新的

我们目前使用不同的设置。我们有一个工件库,在那里我们推送二进制文件。第二个作业从该存储库中提取二进制文件。实际上,它只是一个标准的Windows共享,我们在其中创建了一个子文件夹,其中包含thw job build number。如果同时使用[Parameterized Trigger Plugin][2],则可以将构建编号从作业1传递到作业2,并在正确的二进制文件上运行测试。副作用是,您可以在以后重用二进制文件,而不必在Hudson中保留很长的历史


[2] :触发器插件

什么操作系统?你能执行一个shell脚本/批处理文件吗?@mmr:“我们在Windows上使用hudson…”我需要将一组文件传递给另一台机器上的构建从机。那么,在Windows上,为什么不通过批处理脚本通过网络共享复制它呢?我们的hudson安装使用批处理脚本来移动东西,比如服务器生成的最终构建到供测试人员使用的分发服务器。(是的,我没有看到windows评论,真是白痴)。@mmr:通过网络复制它需要双方的权限、磁盘空间和同步(复制服务器需要时间,而并行构建呢?)。我真傻,我以为哈德逊会带着这个开箱即用的。这似乎确实是我需要的。我刚刚安装了它,在下游项目中,我现在可以添加一个构建步骤来复制工件。然而,我不知道如何使用这个。假设我需要上游项目工作区中的一个文件夹。我需要进入什么?“path/to/folder”似乎不起作用。我不相信您可以只指定一个目录;该插件在文件上工作。但是模式
path/to/folder/**
应该可以做到这一点(即复制这个目录及其子目录中找到的所有文件)。好的,我现在有了上游构建zip的构建脚本,然后hudson将zip作为工件收集。下游测试配置为复制该工件。然而,我总是收到一条“复制0工件自”的消息。知道会出什么问题吗?嗯。你确定你在上游项目中将zip文件作为工件捕获吗?否则,我只需确保插件中指定的路径或模式与zip文件的路径完全匹配。您可以使用
http://hudson/job/project-name/lastSuccessfulBuild/artifact/
检查zip文件保存的确切路径。好的,经过一点推敲,我终于让它工作了。非常感谢你的帮助!这是可行的,但是一个保存没有人需要的二进制文件的SVN存储库确实是一种资源浪费。我原以为哈德逊具备了开箱即用的能力,但如果需要的话,我愿意尝试扩展。我同意——如果不需要,那将是浪费资源。我们保留了这些资源,因此如果由于某种原因测试失败,我们可以将安装文件发送到测试以重新创建问题。诚然,您应该能够从生成的repo版本重建,但我们发现它更容易。自动构建可以将签入的注释放入生成二进制文件的repo版本中