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

詹金斯选择参数传递给管道作业

单于越
2023-03-14
问题内容

当前,我有一个具有不同参数的管道作业,其中此参数之一是Choice参数。这是该作业参数的config.xml输出:

<hudson.model.ChoiceParameterDefinition>
    <choices class="java.util.Arrays$ArrayList">
        <a class="string-array">
            <string>f1</string>
            <string>f2</string>
            <string>f3</string>
            <string>f4</string>
        </a>
    </choices>
    <name>WHERE</name>
    <description>Something</description>
</hudson.model.ChoiceParameterDefinition>

现在,我可以通过传递字符串参数从管道调用此作业:

build job: "NameOfTheJob"", parameters:
  [
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"],
  ]

但是我无法为选择参数定义参数:

我尝试了以下方法

build job: "NameOfTheJob"", parameters:
  [
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"],
    [$class: 'ChoiceParameterValue', name: 'WHERE', value: 'F3'],
  ]

但这失败并显示以下错误:

java.lang.UnsupportedOperationException: no known implementation of class hudson.model.ParameterValue is named ChoiceParameterValue

因此问题是:如何在调用其他管道作业时定义选择参数:

build job: "NameOfTheJob"", parameters:
  [
    [$class: 'StringParameterValue', name: 'BRANCH', value: "${BRANCH}"],
    [$class: '??????', ????],
  ]

有人有这样的例子吗?


问题答案:

我看过一个使用以下语法的工作示例:

build job:'NameOfTheJob', parameters: [
      string(name: 'FirstOption', value: "test"),
      string(name: 'AnotherOption', value: "test12")
]

基本上,不要以特殊的方式对待选择参数,只需将它们视为常规字符串参数即可。



 类似资料:
  • 我有一个 Jenkins Job DSL 种子作业,它调用了几个管道作业,例如 job1.groovy和job2.groovy是标准的Jenkinsfile样式管道。 我想在这些作业中传递一些常用的地图。这些内容可能因环境而异,例如目标服务器、凭据名称。 类似于: 我可以在我的种子作业中定义一个映射,然后在我的管道作业中作为映射进行传递和访问吗?

  • 我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此

  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

  • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

  • 问题内容: 运行带有包含多个节点的阶段的Jenkins管道(基于Groovy),我需要将列表从stageA上NodeA上的某个文件传递到StageB上的nodeB。 在stageA NodeA中,我运行 在stageB,我跑步 到目前为止,我已经在控制台中获得了输出。 现在如何将其输出传递到文件? 不能解决问题:-( 我敢肯定这没什么大不了的,但是我已经花了几个小时来搅动互联网,但无济于事。 问题

  • 问题内容: 我有一个詹金斯工作,带有“主动选择参数”和“主动选择反应参数”。 我试图调用詹金斯的工作,并使用管道脚本传递参数值。但是,我收到以下错误: 参数’ActiveChoicesParam’不具有App_Build期望的类型。转换为有效选择参数。 参数’ActiveChoicesReactiveParam’不具有App_Build期望的类型。转换为活动选择反应参数。 它们(Dev和Serve