Jenkins 在启动新作业时终止以前运行的作业(正在等待人工输入)

Jenkins 在启动新作业时终止以前运行的作业(正在等待人工输入),jenkins,jenkins-workflow,Jenkins,Jenkins Workflow,我的问题很简单 假设我有一个jenkins工作流工作,它检查一些代码,构建一个快照,一直到执行自动化测试并为QA部署它 在此之后,我有一个“手动输入”,作为工作流的暂停,以询问是否继续发布代码。让我们称之为run1 现在假设QA发现了一个bug,需要获取一个新的快照进行测试。这将调用一个新的构建(run2)和一个新的手动问题 如果QA转到run1并继续发布,那就意味着我发布了错误的代码 我想在启动新作业时,删除所有以前运行的作业。这是否可以通过groovy脚本/工作流命令实现?还有别的办法吗?对

我的问题很简单

假设我有一个jenkins工作流工作,它检查一些代码,构建一个快照,一直到执行自动化测试并为QA部署它

在此之后,我有一个“手动输入”,作为工作流的暂停,以询问是否继续发布代码。让我们称之为
run1

现在假设QA发现了一个bug,需要获取一个新的快照进行测试。这将调用一个新的构建(
run2
)和一个新的手动问题

如果QA转到
run1
并继续发布,那就意味着我发布了错误的代码


我想在启动新作业时,删除所有以前运行的作业。这是否可以通过groovy脚本/工作流命令实现?还有别的办法吗?

对于任何一个与同一问题作斗争的人来说,我必须使用一种变通方法来解决这个问题

我使用RESTful API通过循环每个作业来强制“中止”以前运行的任何作业(在丢弃作业之前,我只保留10个作业,所以速度相当快)


它有点黑,但可以工作。

更简单的选择是使用超时:

stage 'approve'
timeout(time: 7, unit: 'DAYS') {
input message: 'Do you want to deploy?', submitter: 'ops'
}

如果在给定的到期时间之前有一个新的工作想要产生,会发生什么呢。我希望,当QA发现bug时,他们会进入管道并说“不”。2.将超时设置为较低的值。3.当QA发现一个bug时,应该在一个自动测试中复制这个bug,从那时起在测试阶段使管道失败。