我只想在推送master
分支时执行一个步骤。使用when
很容易做到这一点,但是这一步必须在不同的代理上执行,现在它在代理上执行完整的代码签出,然后再跳过。
我在管道级别定义agent none
,然后每个步骤定义一个特定的代理。现在,如果我when
中的条件意味着不执行此步骤,我甚至想跳过尝试启动代理。我的代理并不总是在线,我很容易检查是否是在我推动掌握时,但是当负责跳过阶段的代理离线时,我希望没有失败的构建。
欢迎任何想法帮助我。
答案 0 :(得分:1)
您需要在when块中将beforeAgent添加为true 来自https://jenkins.io/doc/book/pipeline/syntax/
默认情况下,如果定义了阶段,则进入阶段的代理后将评估阶段的when条件。但是,可以通过在when块中指定beforeAgent选项来更改此设置。如果将beforeAgent设置为true,则将首先评估when条件,并且仅当when条件为true时才输入代理。