Jenkinsfile启动代理中的条件步骤

时间:2018-02-14 19:59:38

标签: jenkins jenkins-pipeline

我只想在推送master分支时执行一个步骤。使用when很容易做到这一点,但是这一步必须在不同的代理上执行,现在它在代理上执行完整的代码签出,然后再跳过。

我在管道级别定义agent none,然后每个步骤定义一个特定的代理。现在,如果我when中的条件意味着不执行此步骤,我甚至想跳过尝试启动代理。我的代理并不总是在线,我很容易检查是否是在我推动掌握时,但是当负责跳过阶段的代理离线时,我希望没有失败的构建。

欢迎任何想法帮助我。

1 个答案:

答案 0 :(得分:1)

您需要在when块中将beforeAgent添加为true 来自https://jenkins.io/doc/book/pipeline/syntax/

  

默认情况下,如果定义了阶段,则进入阶段的代理后将评估阶段的when条件。但是,可以通过在when块中指定beforeAgent选项来更改此设置。如果将beforeAgent设置为true,则将首先评估when条件,并且仅当when条件为true时才输入代理。