满足条件时,对整个管道使用特殊代理

时间:2019-03-18 16:08:16

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

有声明性管道。在管道块的开头,使用agent指令进行代理选择。正在基于标签的选择。通过这种方式选择的代理是标准/默认代理。

在满足特定条件时如何为整个管道设置特殊代理?

计划是基于管道的一个参数进行状态检查>>可以吗?

所选方法需要解决的要点是什么?

当前解决方案蓝图:

  • 管道代码之前的行代码

  • 提到的Groovy代码根据管道参数的值设置一个变量如何从管道外的Groovy代码中访问管道的参数?

  • agent部分使用Groovy代码匹配附加了特殊代理标签的标签中设置的变量

1 个答案:

答案 0 :(得分:0)

Jenkins.io和Cloudbees都不支持使用声明性管道语法的动态代理选择。因此在代理程序块中添加“ when”表达式将不起作用。但是,可以尝试以下方法 1.创建管道库-在vars文件夹中带有一个常规文件。将所有阶段保留在此文件中,并参数化“ Agent”块 2. Jenkinsfile-将库嵌入Jenkinsfile内,并使用call(body)语法调用上述常规文件。通过此Jenkinsfile传递代理决定参数。

有关库语法,请参考此网址 Shared Library syntax