2016-11-23 182 views
5

如何在Jenkinsfile中使用Jenkins Dynamic PluginJenkinsfile中的动态参数?

我所寻找的是一个Jenkinsfile代码段中:

  • 允许在詹金斯工作
  • 选择时,用于填充可用于Dynamic Choice Parameters列表的脚本填充和的Build with Parameters选项用户将看到一个下拉列表。

当尝试:

  1. Pipeline syntax在詹金斯编辑
  2. 选择properties: Set job propertiesSample step
  3. 选择This project is parameterized
  4. 使用Dynamic Choice Parameter
  5. Name输入值,Choice ScriptRemote Script
  6. Generate Pipeline Script

我得到了下面的模板:

properties([ 
    parameters([ 
     <object of type com.seitenbau.jenkins.plugins.dynamicparameter.ChoiceParameterDefinition> 
    ]), 
    pipelineTriggers([]) 
]) 

即产生管道脚本不包含,我在上面的步骤5.输入的数据。我如何修改parameters以便参数名称,选项等对用户可见?


詹金斯版本:2.19.3 动态参数插件版本:0.2.0

回答

3

没有必要再对詹金斯动态插件了。只需使用常规选择或字符串参数,并使用groovy代码更新值。

#!/bin/groovy 

def envs = loadEnvs(); 

properties([ 
    parameters([ 
     choice(choices: envs, description: 'Please select an environment', name: 'Env') 
    ]) 
]) 

node { 
    try { 
     stage('Preparation'){ 
... 

如果使用选择参数,请注意您必须提供一个字符串,其中的值由新行分隔。

例如:

"a\nb\nc" 

如果你真的需要插件,然后在这个问题上JENKINS-42149投票。

+0

在什么版本的詹金斯?我正在运行2.3,并在步骤中找到错误“没有这样的DSL方法”参数“ –

+0

已更新至2.32.3,它现在似乎正在工作。 –

+0

它的工作原理,但它会创建新的参数,并在构建参数中保存值,如果实际值(例如maven版本列表)发生变化 - 参数值未更新,似乎loadEnvs()不是每次都执行,或者像这样 –