2017-10-19 27 views

回答

1

我不知道有没有办法做你想要什么,但我认为你可以做一些事情,让你75%-100%的有(取决于您希望在发生错误时发生供以后的步骤是什么)与共享库:

pipeline { 
    stages { 
    stage('Do work') { 
     steps { 
      stepsChuckNorrisWrote { 
     ... 
      } 
     } 
    } 
    } 
} 

然后在名为stepsChuckNorrisWrote的共享库中创建一个全局变量。你在这里传递一个闭包。该关闭可以包含您想要的所有步骤。裹在一个try/catch是封闭的执行,不让它失败。

事情是这样的:

// vars/stepsChuckNorrisWrote.groovy 
def call(Closure body) { 
    node('windows') { 
     try { 
      body() 
     } catch (all) { 
      // handle errors here 
     } 
    } 
} 

使用这种方法,只要第一步失败了,没有其他人将继续。可能有一些方式来拉的每一步走出封闭的,基本上在一个try/catch包起来,但我不知道该怎么做这样的事情。

+0

感谢罗布,这就是我认为可能是唯一的选择。我想删除需要写的'steps'一部分,但要通过代码表明这是不可能:( –