【问题标题】:How to pass binaries built upstream to a remote downstream build slave如何将上游构建的二进制文件传递给远程下游构建从站
【发布时间】:2011-02-13 22:26:51
【问题描述】:

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

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

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

【问题讨论】:

  • 什么操作系统?你可以只执行一个shell脚本/批处理文件吗?
  • @mmr: "我们在 Windows 上使用 hudson..." 我需要将一堆文件传递给 另一台机器上的构建从站
  • 那么,在 Windows 上,为什么不通过批处理脚本通过网络共享复制它呢?我们的 hudson 安装使用批处理脚本来移动事物,例如服务器生成的最终构建到分发服务器以供测试人员使用。 (是的,白痴我没有看到 Windows 评论)。
  • @mmr:通过网络复制它需要双方的权限、磁盘空间和同步(几十 MB 需要时间来复制,而并行构建呢?)需要注意。愚蠢的我,我以为哈德森会开箱即用。

标签: .net windows hudson


【解决方案1】:

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

【讨论】:

  • 这会起作用,但是保存没人需要的二进制文件的 SVN 存储库确实会浪费资源。我认为 hudson 具有开箱即用的能力,但如果需要,我愿意摆弄一个扩展。
  • 我同意 - 如果不需要它们,那将是资源的浪费。我们保留了这些资源,因此如果由于某种原因测试失败,我们可以将安装文件发送给测试以重现问题。当然,您应该能够从构建所来自的 repo 修订版进行重建,但我们发现它更容易。自动构建可以将 checkin 的 cmets 放入生成二进制文件的 repo 的 rev 中
【解决方案2】:

在您的下游构建中使用Copy Artifact plugin

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

【讨论】:

  • 这似乎确实是我需要的。我刚刚安装了它,在下游项目中我现在可以添加一个构建步骤来复制工件。但是,我不确定如何使用它。假设我需要来自上游项目工作区的文件夹。我需要输入什么? “路径/到/文件夹”似乎不起作用。
  • 我不相信你可以只指定一个目录;该插件适用于文件。但是path/to/folder/** 模式应该可以解决问题(即复制此目录及其子目录中的所有文件)。
  • 好的,所以我现在将上游构建的构建脚本压缩到该文件夹​​,然后 hudson 将 zip 收集为工件。下游测试配置为复制该工件。但是,我总是收到“从 复制 0 个工件”消息。知道可能出了什么问题吗?
  • 嗯。您确定要将 zip 文件捕获为上游项目中的工件吗?否则,我只需确保您在插件中指定的路径或模式与 zip 文件的路径完全匹配。您可以使用http://hudson/job/project-name/lastSuccessfulBuild/artifact/ 来检查 zip 保存的确切路径。
  • 好吧,再多费些功夫,我终于搞定了。非常感谢您的帮助!
【解决方案3】:

如果您只依赖二进制文件,这对您来说可能有点过头了。但也有Clone Workspace SCM Plugin,它将您的整个工作区存档,您可以在下一个工作中检查它,就好像它来自 SCM。很新。

我们目前使用不同的设置。我们有一个工件存储库,用于推送我们的二进制文件。第二个作业从该存储库中提取二进制文件。从物理上讲,它只是一个标准的 Windows 共享,我们在其中创建一个包含作业内部版本号的子文件夹。如果您还使用 [Parameterized Trigger Plugin][2],您可以将构建号从作业 1 传递到作业 2,并在正确的二进制文件上运行测试。副作用是,您可以稍后重用二进制文件,而无需在 Hudson 中保留很长的历史记录。

[2]:http://Parameterized触发器插件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2014-09-18
    • 2013-02-19
    相关资源
    最近更新 更多