2012-02-29 22 views
5

我的Jenkins服务器设置了两个作业A和B说。如何在相关作业之间配置执行开始?

作业A是由Subversion中的更改触发的,运行单元测试,如果成功,则创建WAR并将其部署到其他环境。

如果作业A成功,则作业B触发。此作业将针对部署的WAR运行测试。

问题是部署过程需要一段时间,并且WAR在作业B启动并尝试使用它时没有及时准备好。

我正在寻找关于如何延迟作业B的想法,直到WAR启动并运行。

有没有办法,一旦工作B被触发等待x秒?如果我可以避免的话,我真的不想在作业B中进行测试。

感谢

+0

也许作业B可以根据作业A生成的战争进行部署(这将存储在lastSuccessfulBuild的工件中) – 2012-02-29 18:58:32

回答

2

肯定是有一份工作,以等待的方式 - 只要把sleep进入第一外壳构建步骤。或者,您可以设置“安静期” - 创建构建版时,它位于高级项目选项中。

然而,这是一个只有在其他方法失败时才使用的创可贴解决方案。您可以尝试以下方法:如果在完成触摸Jenkins有权访问的文件之前有办法使部署过程(该作业触发器)正确完成,那么您可以使用FSTrigger Plugin。请参阅用例3。

+0

感谢您对可用选项的概述。已经设定了暂时的睡眠,但我打算看看FSTrigger插件,因为它看起来对于这个和其他情况非常有用。 – FinalFive 2012-03-02 11:43:40

1

使这项工作最可靠的方法是在部署成功之前使作业A不完整,例如,通过测试部署的Web应用程序的URL的有效响应。 This blog post描述了一种做法。

相关问题