满足条件时对整个管道使用专用剂
Use special agent for whole pipeline when a condition is met
有声明性管道。在管道块的开头,代理选择是使用 agent
指令进行的。正在进行基于标签的选择。这样选择的代理就是standard/default代理
如何在满足特定条件时为整个流水线设置一个特殊代理?
计划是根据管道的一个参数进行条件检查 >> 这行得通吗?
所选方法需要解决哪些问题?
当前解决方案蓝图:
Groovy 管道块之前的代码
提到的groovy代码根据管道参数的值设置变量如何从位于管道外的Groovy代码中访问管道参数?
agent
section uses variable set in Groovy code matching label special agent got attached to
Jenkins.io 和 Cloudbees 都不支持使用声明式管道语法的动态代理选择。因此,在代理块中添加 "when" 表达式将不起作用。但是,可以尝试以下方法
1. 创建管道库 - 在 vars 文件夹中有一个 groovy 文件。将所有阶段保留在此文件中并参数化 "Agent" 块
2. Jenkinsfile - 将库嵌入 Jenkinsfile 并使用 call(body) 语法调用上面的 groovy 文件。从这个 Jenkinsfile 传递代理决定参数。
关于库语法,请参考这个url
Shared Library syntax
有声明性管道。在管道块的开头,代理选择是使用 agent
指令进行的。正在进行基于标签的选择。这样选择的代理就是standard/default代理
如何在满足特定条件时为整个流水线设置一个特殊代理?
计划是根据管道的一个参数进行条件检查 >> 这行得通吗?
所选方法需要解决哪些问题?
当前解决方案蓝图:
Groovy 管道块之前的代码
提到的groovy代码根据管道参数的值设置变量如何从位于管道外的Groovy代码中访问管道参数?
agent
section uses variable set in Groovy code matching label special agent got attached to
Jenkins.io 和 Cloudbees 都不支持使用声明式管道语法的动态代理选择。因此,在代理块中添加 "when" 表达式将不起作用。但是,可以尝试以下方法 1. 创建管道库 - 在 vars 文件夹中有一个 groovy 文件。将所有阶段保留在此文件中并参数化 "Agent" 块 2. Jenkinsfile - 将库嵌入 Jenkinsfile 并使用 call(body) 语法调用上面的 groovy 文件。从这个 Jenkinsfile 传递代理决定参数。
关于库语法,请参考这个url Shared Library syntax