我是 Jenkins 管道 groovy 脚本的新手。
我有一个名为“HOSTNAMES”的作业参数,它将采用一些由逗号分隔的主机名值作为输入。我需要以并行模式在所有这些主机上执行一些脚本。如何使用 jenkins groovy 脚本实现这一点。请指导我。
答案 0 :(得分:0)
假设所有这些节点(主机名)都连接到 Jenkins 服务器并且 HOSTNAMES
参数是节点名称列表(它们出现在 jenkins 服务器中),您可以使用 parallel 步骤实现你想要的。
您必须将每个节点名称转换为代表并行执行分支的映射条目,然后使用 parallel
关键字运行它们。
类似:
def hosts = HOSTNAMES.split(',')
def executions = hosts.collectEntries { host ->
["Running on ${host}" : {
node(host) {
// The code to run on each node
stage("Execution") {
echo 'example code on #{host}'
...
}
}
}]
}
parallel executions
如果需要,您也可以在一行中运行它:
parallel hosts.collectEntries { ...