【问题标题】:jenkins DSL dynamic parametersjenkins DSL动态参数
【发布时间】:2016-12-09 17:25:52
【问题描述】:

这是我生成动态参数的配置块。但它不起作用。有人可以帮忙吗?

configure { project ->
    def paramDefs = project / 'properties' / 'hudson.model.ParametersDefinitionProperty' / 'parameterDefinitions'
    paramDefs << 'com.seitenbau.jenkins.plugins.dynamicparameter.scriptler.ScriptlerStringParameterDefinition' {
             name('BUILD_VERSION')
             description('Overall Build version')
            __remote(false)
            __scriptlerScriptId('**/build_versions.groovy')
    }
}

【问题讨论】:

    标签: jenkins dsl


    【解决方案1】:

    简短回答:不要再使用插件了,只需使用普通的 groovy 代码结合默认的 jenkins 参数即可

    完整答案:请看这个答案https://stackoverflow.com/a/42230455/4486169

    【讨论】:

      【解决方案2】:

      这个问题的答案没有帮助,所以这里是一个使用 StringParameterDefinition 的示例(如果您使用的是 Scriptler 替代方案,只需替换为 sriptler.ScriptlerStringParameterDefinition),您可以通过打开配置的作业 xml 来查找节点名称:

      configure { root ->
          def paramDefs = root / 'properties' / 'hudson.model.ParametersDefinitionProperty' / 'parameterDefinitions'
      
          paramDefs << 'com.seitenbau.jenkins.plugins.dynamicparameter.StringParameterDefinition' {          
              delegate.createNode('name', 'FirstParam')
              delegate.createNode('__script', 'someScriptString')
      
              __localBaseDirectory(serialization: 'custom') {
                      'hudson.FilePath' {
                          'default' {
                              delegate.createNode('remote', "${JENKINS_HOME}/dynamic_parameter/classpath")
                          }
                      delegate.createNode('boolean', true)
                      }
              }
      
              delegate.createNode('__remoteBaseDirectory', 'dynamic_parameter_classpath')
              delegate.createNode('__classPath', '') 
          }
      
          paramDefs << 'com.seitenbau.jenkins.plugins.dynamicparameter.StringParameterDefinition' {          
              delegate.createNode('name', 'SecondParam')
              delegate.createNode('__script', 'someScriptString')
      
              __localBaseDirectory(serialization: 'custom') {
                      'hudson.FilePath' {
                          'default' {
                              delegate.createNode('remote', "${JENKINS_HOME}/dynamic_parameter/classpath")
                          }
                      delegate.createNode('boolean', true)
                      }
              }
      
              delegate.createNode('__remoteBaseDirectory', 'dynamic_parameter_classpath')
              delegate.createNode('__classPath', '') 
          }
      
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 2022-08-15
        • 2016-12-30
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多