当前位置: 首页 > 面试题库 >

如何通过Jenkins Workflow的“ build”步骤使用NodeLabelParameter插件中的参数

陶元凯
2023-03-14
问题内容

我有一个工作,它接受由NodeLabelParameter插件提供的“节点”参数,我想通过“构建”步骤从詹金斯的“工作流程”工作中调用它。

当我将代码段生成器与“构建工作”一起使用时,生成的代码为:

build job: 'test job', parameters: [<object of type org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue>]

当然这是无效的。

我尝试了这个(我在NodeLabelParameter插件代码中找到了这个构造函数):

build job: 'test job', parameters: [[new org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue('UPSTREAM_NODE', '', 'my_node')]]

但是构建失败,出现以下异常:

java.lang.ClassCastException: org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.parameters expects class hudson.model.ParameterValue but received class java.util.ArrayList
at org.jenkinsci.plugins.workflow.structs.DescribableHelper.coerce(DescribableHelper.java:250)
...

在工作流作业中使用此类参数的正确语法是什么?

谢谢


问题答案:

例外是因为您有一组多余的方括号。尝试

build job: 'test job', parameters: [new org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue('UPSTREAM_NODE', '', 'my_node')]

但是,首选语法类似于

build job: 'test job', parameters: [[$class: 'NodeParameterValue', name: 'UPSTREAM_NODE', labels: ['my_node'], nodeEligibility: [$class: 'AllNodeEligibility']]]

假设您正在使用此修复程序运行Workflow
1.3或更高版本,这就是我希望代码段生成器产生的效果。如果是这样,并且代码段生成器仍然无法生成有效的代码,请提交错误报告。



 类似资料:
  • 本文向大家介绍VsCode插件开发之插件初步通信的方法步骤,包括了VsCode插件开发之插件初步通信的方法步骤的使用技巧和注意事项,需要的朋友参考一下 参考了Egret Wing,想像Egret Wing那样在上方titlebar最右边上面增加一个menu(这个menu相对于一个按钮,当点击这个按钮时会出现一个window弹框,这个window弹框里就包含相关的表单信息以供登录或者注册使用。我是以

  • 本文向大家介绍python logging通过json文件配置的步骤,包括了python logging通过json文件配置的步骤的使用技巧和注意事项,需要的朋友参考一下 logconfig.json log_utility.py 调用 config_path = sys.path[0] + '/logconfig.json' log_utility.setup_logging(config_pa

  • 问题内容: 在Jenkins “通过Ssh发布”插件中,如何使用Label(高级选项)又称为参数化发布功能。如何使用标签字段。我要在“标签”字段中输入什么。我是否需要放置一个具有Machine Name的变量名(我可以从build参数读取一个变量名)。我尝试了同样的方法这是我所做的: 我的机器名称为QA_1,并且有一个变量jenkins build $ MC_NAME指向XXX。我在LABEL字段

  • 如何按5分钟的步长生成日期时间范围?以下是输出:

  • 我在maven项目中使用sonar预览模式,但在下载依赖项时,sonarsource使用JFrog Jcenter存储库作为我们中央存储库的镜像,但它不包含所有依赖项 日志: [调试]使用镜像x-maven-central(https://company-url.com/jcenter/)中环(https://company-url.com/x-mvn-delivered). 然后我有一个警告:[

  • 问题内容: 我正在尝试使用Rundeck构建,启动和链接一组Docker容器。简而言之(对于不熟悉docker的用户),启动映像时,它将返回容器ID。我想在启动后续作业时使用此容器ID。 从命令行运行时,它看起来像这样(仅示例!): (请注意在第二个命令行中使用第一个返回值) 此时,将有两个容器在运行。第二个将通过该选项链接到第一个,并且可使用第二个容器内部的主机名 host1 对其进行寻址。公平