有没有办法从詹金斯失败的工作中恢复?

时间:2014-04-16 14:09:23

标签: jenkins

我正在使用4个Jenkin作业进行持续构建和部署。为标签创建创建作业,使用标签构建作业,部署到server1并部署到server2等等。

Create_label构建将在数据库中运行MYSQL查询并获取标签。成功的Create_label作业将使用标签调用Build-job,并且在成功完成Build-Job后,它将调用Deploy-server1作业等等。

如果构建在Build-Job中失败,之后如果我启动第一个Create-Label作业,则它会运行作业并创建NEW标签。我的意思是每次运行create-label都会获得增量标签。我只能从第一份工作中获得标签,然后转到第二份工作。任何人都可以建议如何从失败的作业中恢复而不运行第一个作业,并使用创建的旧标签(从第一个作业的最后一个构建)开始第二个作业。任何努力在詹金斯完成这种情况。

1。创建标签 2.Build-工作 3.Deploy-server1的 4.Deploy-server2的

2 个答案:

答案 0 :(得分:1)

看来,你现在有2个问题:

问题1 - >如果任何作业失败,则下次应该跳过成功的作业并仅从失败的作业重新启动。

可能的解决方案 - >您可以使用Build Pipeline插件https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin,如果作业在说第二个作业时失败,那么您所要做的就是从管道重新启动第二个作业,它将从那里继续。

问题2 - >对于作业2,您不仅要重新启动它,而且必须从上一个成功的作业1中获取输入标签号,而不必重新启动作业1

不幸的是,我没有为此提供干净的自动化解决方案。我唯一能想到的就是需要手动干预,即因为这个作业是参数化的,所以在从插件重启之前,将参数的默认值从上一个成功的作业1更改为标签号(上面的插件不会问运行作业时的参数)

或让Job1在某个集中位置登录标签号,让作业B从那里获取参数,而不是从jobA中取出。

谢谢, Manish Joshi

答案 1 :(得分:0)

我正在使用MultiJob plugin,您只需点击" 恢复构建"在父作业中继续失败的工作。

在这种情况下,其执行的参数将与之前运行失败的参数完全相同。