是在控制器或代理上执行的内联脚本



根据我的理解,在管道运行期间,所有groovy都在控制器上执行。因此,建议将网络调用委托给bash或其他脚本/编程语言,以便在代理上执行网络请求。

内联脚本是否在控制器上的代理上执行?

例如:进行

sh "curl some-url.com"

sh "./script-which-calls-curl.sh"

行为相同?

脚本是否在控制器上运行与is是否内联无关,这取决于sh步骤的上下文:它需要一个显式代理,该代理确定脚本实际运行的代理,可以是控制器。

由于缺少代理/节点,此最小管道将出错:

sh "echo hello"

相反,您需要将其封装到node块(脚本化管道(中,或者选择适当的代理(声明性(:

// without any arguments any node/agent is taken
// in my setups this normally selects the controller
node {
sh "echo hello"
}
pipeline {
agent any
stages {
stage "My Stage", {
sh "echo hello"
}
}
}