Continuous integration 如何通过位于不同hudson中的另一个作业触发hudson作业

Continuous integration 如何通过位于不同hudson中的另一个作业触发hudson作业,continuous-integration,hudson,Continuous Integration,Hudson,我在哈德逊A中有作业A,在哈德逊B中有作业B。我想通过作业B触发作业A。我没有使用哈德逊,但我想您最简单的方法是使用URL触发器: 我认为有一个最新的构建url可用于此操作。在作业B配置中,选中远程触发构建(例如,从脚本)复选框并提供令牌 那里的帮助文本显示了可以调用的URL,以从远程脚本(例如,从Hudson作业a中的shell脚本)触发构建 然而,无论作业A的结果如何,这都会触发作业B。 Morechilli的答案可能是最好的解决方案。在最新版本的Hudson中,lastSuccessfu

我在哈德逊A中有作业A,在哈德逊B中有作业B。我想通过作业B触发作业A。

我没有使用哈德逊,但我想您最简单的方法是使用URL触发器:


我认为有一个最新的构建url可用于此操作。

在作业B配置中,选中远程触发构建(例如,从脚本)复选框并提供令牌

那里的帮助文本显示了可以调用的URL,以从远程脚本(例如,从Hudson作业a中的shell脚本)触发构建

然而,无论作业A的结果如何,这都会触发作业B。

Morechilli的答案可能是最好的解决方案。

在最新版本的Hudson中,lastSuccessfultBuild/HTML页面将包含自构建以来的延迟时间,这对于每个调用都是不同的。这会导致URL更改触发器旋转

一种修复方法是使用xml、json或python API仅请求信息的一个子集。使用“tree”请求参数,以下URL将返回一个XML文档,其中仅包含上次成功生成的生成号


使用此URL恢复了我从URL更改触发器中预期的行为。

就我个人而言,我发现最简单的方法是查看构建时间戳:
PROJECT\u NAME/lastsucessfulbuild/buildTimestamp

我正在使用wget触发生成:

wget --post-data 'it-just-need-to-be-a-POST-request' 
--auth-no-challenge --http-user=myuser --http-password=mypassword
http://jenkins.xx.xx/xxx/job/A/build?delay=0sec
还有其他方法可以触发构建,请参阅jenkins的其余部分和其他API。
但这在unix上非常有效。

任何知道答案的人,请尽快回复,这真的很紧急……请帮助您缺乏计划或阅读不会构成我们的紧急情况。有没有想过哈德逊奴隶?或者您真的需要两台独立的Hudson服务器吗?当作业的一个步骤失败时,Hudson不会执行以下步骤。因此,当远程作业的调用是最后一步时,它将仅在前一步成功的情况下执行。我认为最后一个成功的URL应该与URL更改触发器一起工作,如果您只想在作业A成功的情况下触发作业B。如果作业B应始终被触发,请尝试上次生成URLhttp://SERVER:PORT/job/JOBNAME/lastBuild/