Jenkinsfile 启动代理中的条件步骤

Ame*_*eon 3 jenkins jenkins-pipeline

我只想在推送我的分支时执行一个步骤master。使用 可以轻松做到这一点when,但是此步骤必须在不同的代理上执行,现在它会在跳过之前在代理上执行完整的代码签出。

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

任何想法都欢迎帮助我。

GRu*_*ush 6

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

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