【问题标题】:Passing extended choice parameter value from one job to another remote job in Jenkins pipeline将扩展选择参数值从一个作业传递到 Jenkins 管道中的另一个远程作业
【发布时间】:2020-12-11 18:41:30
【问题描述】:

我正在开发一个脚本化的 Jenkins 管道,并且我正在使用 triggerRemoteJob 插件来触发另一个 Jenkins 实例上的远程作业。

远程作业有一个扩展的选择参数。

将参数传递给 triggerRemoteJob 插件的语法似乎与 build Job 插件不同。

在使用 triggerRemoteJob 插件时传递扩展选择参数值的正确语法是什么?

编辑

在下面发布了答案。 如果有办法解决 Jenkins 管道中的问题,请将其作为答案发布。

【问题讨论】:

  • 你试过什么?您使用的管道代码是什么,遇到了什么错误?
  • @aalbagarcia 我尝试在使用 triggerRemoteJob 插件时简单地作为参数传递,就像这样 - triggerRemoteJob(job: "job",parameters: "key=value") 。未收到错误,但远程作业上的(扩展选择)参数未填充该值。

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-groovy


【解决方案1】:

据我所知,这些参数没有特殊的类。我一直使用 String 之一,只要您引入了一个有效的选项,它就可以工作:

string(name: 'PARAM', value: "option"),

--- 编辑 ----

我使用以下语法:

    build(job: 'my_job', parameters: [
      string(name: 'PARAMETER', value: 'value'),
    ])

【讨论】:

  • 我在使用 triggerRemoteJob 插件时尝试像这样简单地作为参数传递 - triggerRemoteJob(job: "job",parameters: "key=value")。未收到错误,但远程作业上的(扩展选择)参数未填充该值。它适用于普通字符串参数。
  • 我已经用我使用的语法编辑了我的原始答案,这也可能对你有用。你能试试吗?
  • 我已经尝试过了,它给我的错误是:java.lang.ClassCastException: class org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep.setParameters() 期望类 java.lang。字符串但收到类 java.util.ArrayList。这就是为什么我必须这样做:triggerRemoteJob(job: "job",parameters: "key=value")
【解决方案2】:

参考github中的这个issue thread: https://github.com/jenkinsci/coordinator-plugin/issues/46

似乎是因为Extendedchoice参数不支持jenkins中的接口,调用triggerRemoteJob用ext。不支持选择参数。

【讨论】:

    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2022-01-05
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多