Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如何配置从属作业之间的执行开始?_Jenkins - Fatal编程技术网

Jenkins 如何配置从属作业之间的执行开始?

Jenkins 如何配置从属作业之间的执行开始?,jenkins,Jenkins,我的Jenkins服务器设置了两个作业A和B 作业A由subversion中的更改触发,运行单元测试,如果成功,则创建WAR并将其部署到另一个环境 如果作业A成功,则会触发作业B。此作业针对已部署的WAR运行测试 问题是,部署过程需要一段时间,而当作业B启动并尝试使用它时,战争还没有及时准备好 我在寻找如何将B工作推迟到战争开始并开始的想法 有没有办法,一旦作业B被触发等待x秒?如果可以避免的话,我真的不想把它放在作业B的测试中 谢谢肯定有一种方法可以让作业等待-只需将sleep放入第一个she

我的Jenkins服务器设置了两个作业A和B

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

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

问题是,部署过程需要一段时间,而当作业B启动并尝试使用它时,战争还没有及时准备好

我在寻找如何将B工作推迟到战争开始并开始的想法

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


谢谢

肯定有一种方法可以让作业等待-只需将
sleep
放入第一个shell构建步骤。或者,您可以设置“静默期”——在创建构建时,它位于高级项目选项中


<>这是一个只有在其他方法失败的情况下才能使用的创可贴解决方案。您可以尝试以下方法:如果有一种方法可以在部署过程(作业a触发)完成之前立即接触Jenkins有权访问的文件,那么您可以使用。请参见此处的用例3。

完成此工作的最可靠方法是在部署成功之前使作业不完成,例如,通过测试来自已部署web应用的URL的有效响应。描述了一种方法

也许作业B可以根据作业A生成的war(将存储在lastSuccessfulBuild的工件中)进行部署,这要感谢对可用选项的概述。目前已经设置了一个睡眠,但我将研究FSTrigger插件,因为它看起来对这种情况和其他情况非常有用。