编辑(2016年10月):请参阅下面的其他答案“使用里程碑并锁定”,其中包括最近引入的功能。
使用timeout
步骤
作为第一个选择,您可以将您的
sh步骤包装为一个
timeout步骤。
node() { stage 'Build to Stage' { sh '# ...' } stage 'Promotion' { timeout(time: 1, unit: 'HOURS') { input 'Deploy to Production?' } } stage 'Deploy to Production' { sh '# ...' }}这将在超时后停止构建。
移动input
步骤来次最轻量级执行人
另一种选择是不为该
input步骤分配重量级执行程序。您可以通过使用块
input外的步骤来执行此操作
node,如下所示:
stage 'Build to Stage' { node { sh "echo building" stash 'complete-workspace' }}stage 'Promotion' { input 'Deploy to Production?'}stage 'Deploy to Production' { node { unstash 'complete-workspace' sh "echo deploying" }}这 就是 很可能是更优雅的方式,但仍然可以用组合
timeout的步骤。
编辑:@amuniz指出,您必须存储/取消存储工作区的内容,因为可能分别为这两个
node步骤分配了不同的节点工作区目录。



