小编Mat*_*gen的帖子

如何从jenkins管道中的NodeParameterDefinition访问所有节点?

我正在编写一个 Jenkinsfile,它使用jenkins 的NodeLabel 参数插件。在这里,我使用 NodeParameterDefinition 使用户能够选择应该进行构建的节点。我启用了allowMultiSelectionForConcurrentBuilds,但在访问Jenkinsfile中的参数值时,我仍然只得到一个只有一个节点名称的字符串。参数值类型也是字符串,如何获取用户为该参数选择的所有节点?

参数定义:

 [
     $class: 'NodeParameterDefinition',
     allowedSlaves: ['ALL (no restriction)'],
     defaultSlaves: ['master'],
     description: 'What nodes to run the build on.',
     name: 'BUILD_NODE',
     nodeEligibility: [$class: 'AllNodeEligibility'],
     triggerIfResult: 'allowMultiSelectionForConcurrentBuilds'
 ]
Run Code Online (Sandbox Code Playgroud)

所以如果我在执行时选择了多个节点,那么在访问这个参数值时仍然只能得到一个节点名称。

echo "Will build on $BUILD_NODE";
Run Code Online (Sandbox Code Playgroud)

管道脚本是否无法启用多节点选择?

如何访问参数值:

echo "Will build on $BUILD_NODE";
node("$BUILD_NODE")
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins jenkins-pipeline

5
推荐指数
1
解决办法
1315
查看次数