提问人:sbi 提问时间:4/30/2010 最后编辑:Christopher Orrsbi 更新时间:5/6/2010 访问量:902
如何将上游构建的二进制文件传递到远程下游构建从属服务器
How to pass binaries built upstream to a remote downstream build slave
问:
我们在 Windows 上使用 Hudson 来构建 .NET 解决方案并运行单元测试 (NUnit)。因此,Hudson 用于启动执行实际工作的批处理文件。
我现在正在尝试设置一个新的测试,该测试将在构建从属设备上运行,并且将运行很长时间。测试应使用上游生成生成的二进制文件。
我已经搜索了 Hudson 文档,但我找不到如何将上游构建工件传递给下游从站。我该怎么做?
答:
根据您使用的源代码管理管理,您可以作弊并使用它。我不喜欢签入二进制文件,尤其是当它们很大时。但是我过去曾使用通过 CI 构建生成的二进制文件或安装程序,自动将它们签入到单独的 svn 存储库中,并在主服务器指示时让从属机器从该存储库中提取并执行您需要执行的任何测试。
评论
在下游构建中使用 Copy Artifact 插件。
只需指定上游作业的名称以及要复制到下游工作区的路径即可。
评论
path/to/folder/**
http://hudson/job/project-name/lastSuccessfulBuild/artifact/
如果你只依赖于二进制文件,这对你来说可能有点矫枉过正。但也有克隆工作区 SCM 插件,它可以存档您的整个工作区,您可以在下一个作业中检查它,就好像它来自 SCM 一样。这是很新的。
我们目前使用不同的设置。我们有一个 Artifact Repository,我们在其中推送二进制文件。第二个作业从该存储库中提取二进制文件。从物理上讲,它只是一个标准的 Windows 共享,我们在其中创建一个包含作业内部版本号的子文件夹。如果您还使用 [参数化触发器插件][2],则可以将内部版本号从作业 1 传递到作业 2,并在正确的二进制文件上运行测试。副作用是,您可以稍后重用二进制文件,而无需在 Hudson 中保留很长的历史记录。
[2]: http://Parameterized 触发器插件
评论