2

我目前正在开发一个测试自动化系统并拥有一个 Jenkins (Hudson) Buildserver。在这里,我可以构建我的安装程序,并将获得一个可执行的安装程序作为 *.exe。

这个 *.exe 我可以自动放在网络共享上,所有连接的计算机都可以访问它。

现在我想在构建安装程序后执行以下操作。我想将它部署到我可以在网络中选择的计算机上并运行程序。

我正在寻找一个可以最好地集成到 Jenkins 中的解决方案,但无论如何我可以在我的 Jenkins 服务器上批量运行任何程序。

那么我需要哪些部分,你会建议我如何实现它?当然,该解决方案将来应该是可扩展的,并且可能需要 Jenkins 和其他 PC 之间的更多通信。

我想主要问题是:

如何最好地安装遥控器?我应该在这里使用某种客户端服务器架构还是最好的方法是什么?

谢谢你的帮助!

4

1 回答 1

1

一种方法是:使用各种机器分布式运行 Jenkins ,您希望在这些机器上运行作为从属运行的安装程序。然后编写两个作业:BUILDITRUNIT。第一个将构建您的项目(它可能仅绑定到一台机器或多个从站),第二个将运行安装程序并测试安装(此作业将在您要测试的从站上运行)。

现在有两种可能性,即上游和下游做什么工作。

(1) BUILDIT在上游。在构建结束时,它将通过参数化触发器插件调用RUNIT,并将安装程序的位置传递给它。您可以通过ArtifactDeployer 插件将安装程序放在由BULDIT的 BUILD_ID 键入的目录中的共享驱动器上(这可能是最容易实现的选项,但不是通用的);或者RUNIT可以通过 wget 或 curl 的永久链接访问安装程序工件(在这种情况下,BUILDIT将构建链接并将其传递给RUNIT)。还有其他选项(例如使用Jenkins Python Remote Access API),但它们更难实现。

现在,RUNIT可以是一个多配置作业,它将触发所有从属设备上的安装/测试;或者,您可以从BUILDIT传递一个参数,指定要在哪个从站上运行。然后,使用NodeLabel参数插件,您可以将RUNIT 绑定到参数指定的从站。

(2) RUNIT在上游。您以某种方式决定要运行测试的从属设备并在该从属设备上调用RUNIT(有关如何参数化要在其上运行的从属设备,请参见上文)。然后RUNIT将通过参数化触发器插件调用BUILDIT作为构建步骤(而不是构建后步骤)运行。RUNIT应该将其 BUILD_ID 作为参数传递给BUILDIT,以便BUILDIT可以存储由它键入的安装程序工件。RUNIT将等待BUILDIT完成,使用 BUILD_ID 找到安装程序,然后继续安装和测试。

于 2012-07-12T17:34:53.217 回答