Dynamic Parameter in Jenkinsfile?

允我心安 提交于 2019-12-01 14:39:19

问题


How can I use the Jenkins Dynamic Plugin in a Jenkinsfile?

What I am looking for is a Jenkinsfile snippet that:

  • Enables the Build with Parameters option in the Jenkins job
  • When selected, a script that populates a list that can be used Dynamic Choice Parameters is populated and the user will see a drop down list.

When trying:

  1. Pipeline syntax in the Jenkins editor
  2. Selecting properties: Set job properties as Sample step
  3. Selecting This project is parameterized
  4. Using Dynamic Choice Parameter
  5. Enter values for Name, Choice Script, Remote Script etc
  6. Generate Pipeline Script

I get the following template:

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

i.e. the generated pipeline script does not contain the data that I have entered in step 5. above. How can I modify parameters so that parameter name, choices, etc will be visible to the user?


Jenkins version: 2.19.3 Dynamic Parameter Plugin version: 0.2.0


回答1:


there is no need anymore for the Jenkins Dynamic Plugin anymore. Just use the normal choice or string parameter and have the value(s) updated by groovy code.

#!/bin/groovy

def envs = loadEnvs();

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

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

If you use the choice parameter be aware the you must provide a string where the values are separated by a new line.

For example:

"a\nb\nc"

If you really need to plugin, then vote on this issue JENKINS-42149.



来源:https://stackoverflow.com/questions/40758132/dynamic-parameter-in-jenkinsfile

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!