Jenkins作业DSL参数被配置块覆盖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins作业DSL参数被配置块覆盖相关的知识,希望对你有一定的参考价值。

在我们的Jenkins实例上,我们使用了一些插件,其中JobDSL API可供少数使用,而其他人无法使用,因为我们必须使用configure选项创建这些插件。

在这种情况下;

如果我将配置块放在参数闭包之外,配置块似乎会覆盖现有参数(参见下面的代码);要么

排序错误(booleanparam在生成的Extended Choice参数之后列出第二个)如果我将configure块放在闭包内 - 任何想法可能出错?

理想情况下,在参数部分中,我希望首先出现布尔参数,然后是扩展选择参数

job('example') {
  parameters {
    booleanParam('<name>, <boolenvalue>')
  }
  configure {
    project->
      project / 'properties' << 'hudson.model.ParametersDefinitionProperty' {
        parameterDefinitions { 'com.cwctravel.hudson.plugins.extended__choice__parameter.ExtendedChoiceParameterDefinition'
          {
            name '<name>'
            quoteValue 'false'
            type 'PT_MULTI_SELECT'
            value '<values>'
            multiSelectDelimiter ','                
          }
        }
      }
} 
答案

只是不能生成第二个ParametersDefinitionProperty。而是在现有的parameterDefinitions下面添加参数:

job('example') {
  parameters {
    booleanParam('<name1>')
  }
  configure { project->
    project / 'properties' / 'hudson.model.ParametersDefinitionProperty' / parameterDefinitions << 'com.cwctravel.hudson.plugins.extended__choice__parameter.ExtendedChoiceParameterDefinition' {
      name '<name2>'
      quoteValue 'false'
      type 'PT_MULTI_SELECT'
      value '<values>'
      multiSelectDelimiter ','                
    }
  }
} 

以上是关于Jenkins作业DSL参数被配置块覆盖的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行Jenkins CI管道时屏蔽作为用户输入传递的密码?

具有多个部署的单个 Jenkins 作业

如何创建参数化的Jenkins作业?

jenkins 构建触发器 以及参数的传递

使用job-dsl / pipeline语法的多个cron表达式

通过覆盖“检测到 CI,跳过 Git 挂钩安装”在 Jenkins 管道作业中安装 husky git 挂钩