我们的软件项目包含Perl,C& VC ++代码。我正在尝试在主/从配置中设置Hudson来管理构建和扩展。测试过程。我有一个作为主机运行的Linux机箱和Windows XP(32位),Windows 7(64位),作为从机运行的Linux机箱。构建过程涉及在特定机器上构建项目的特定部分。所以我想在XP box& amp;上构建我们的VC ++代码的32位版本。 Windows 7上的64位版本。同样,我必须使用gcc在linux机器上编译C代码。最后,当一切都完成后,启动Perl单元测试以确保一切正常。
有两个与此相关的问题:
1)我无法弄清楚作业配置在哪里可以说“在windows xp slave上运行build-32.bat”& “在Windows 7 slave上运行build-64.bat”等等。简而言之,我试图将构建过程的特定部分绑定到特定的从属。我怎么能这样做?
2)当我运行批处理文件来完成构建过程时,Hudson如何知道我的构建是否成功?我找不到任何可以捕获构建脚本输出的部分。分析它。或者我应该采取其他方式吗?
感谢您的帮助。
答案 0 :(得分:1)
答案 1 :(得分:1)
1)不同的奴隶
好的,如果我理解你的话,你需要在不同的机器上运行“相同”的项目。如果它们不相互依赖,则可以尝试使用多配置作业。您只需要确保以某种方式触发不同的构建脚本,具体取决于从属。
通常,在构建代码之后运行单元测试。您描述它的方式,听起来更像是涉及所有三个组件的集成测试。在这种情况下,您可能需要另一项工作来运行单元(?)测试。
据我所知,除了多配置项目之外,没有办法让一个作业的不同部分在不同的奴隶上运行。在这种情况下,您必须创建多个作业并将它们链接起来。几个作业的优点是能够使用join plugin并行构建步骤。不幸的是,切割工作会造成很多混乱,并且更难以维护。
2)批处理文件
Hudson使用errorlevel(或退出代码)。要保存,您应始终通过调用exit /B <error_code>
作为脚本的最后一个命令来设置退出代码。如果成功则替换为0或错误的非零值。您还应该使用call命令调用所有批处理文件,例如call mybatch.bat Param1 Param2
。