我目前正在开发一个测试自动化系统,并拥有一个Jenkins(Hudson)Buildserver。 在这里,我可以构建我的安装程序,并将获得一个可执行的安装程序* .exe。
这个* .exe我可以自动放在网络共享上,可以被所有连接的计算机访问。
现在我想在构建安装程序后执行以下操作。 我想将它部署到我可以在网络中选择并运行程序的计算机上。
我正在寻找最好能在Jenkins中集成的解决方案,但无论如何我可以批量运行Jenkins服务器上的任何程序。
那么我需要哪些部分以及您如何建议我实施它? 当然,未来解决方案应该是可扩展的,并且可能需要Jenkins和其他PC之间的更多通信。
我猜主要问题是:
如何最好地安装遥控器? 我应该在这里使用某种Client Server架构还是最好的方法?
感谢您的帮助!
答案 0 :(得分:1)
执行此操作的一种方法是:使用各种计算机运行Jenkins distributively,您希望运行作为从属服务器运行的安装程序。然后编写两个作业: BUILDIT 和 RUNIT 。第一个将构建您的项目(它可能只与一台机器或各种从机相连),第二个将运行安装程序并测试安装(此作业将在您要测试的从站上运行)。
现在有两种可能性,即上游和下游哪个工作。
(1) BUILDIT 是上游。在构建结束时,它将通过Parameterized Trigger Plugin调用 RUNIT ,并将安装程序的位置传递给它。您可以将安装程序放在由 BULDIT 的BUILD_ID通过ArtifactDeployer plugin键入的目录中的共享驱动器上(这可能是最容易实现的选项,但不是通用的);或者 RUNIT 可以通过wget或curl的固定链接访问安装程序工件(在这种情况下 BUILDIT 将构造并传递给 RUNIT 链接) 。还有其他选项(例如使用Jenkins Python Remote Access API),但它们更难实现。
现在, RUNIT 可以是一个多配置作业,它将触发所有从站的安装/测试;或者,您也可以从 BUILDIT 传递一个参数,指定要运行的从站。然后,使用NodeLabel Parameter plugin,您可以将 RUNIT 绑定到参数指定的从属设备。
(2) RUNIT 是上游。您以某种方式决定要在哪个从站上运行测试并在该从站上调用 RUNIT (请参阅上文,了解如何参数化从站运行)。 RUNIT 然后将 BUILDIT 通过参数化触发器插件作为构建步骤(而不是构建后步骤)运行。 RUNIT 应将 BUILDIT 的BUILD_ID作为参数传递给 BUILDIT ,以便存储由其键入的安装程序工件。 RUNIT 将等待 BUILDIT 完成,使用BUILD_ID找到安装程序,然后继续安装和测试。