Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamic Parameter in Jenkinsfile?

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

like image 228
matsev Avatar asked Nov 23 '16 07:11

matsev


1 Answers

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.

like image 81
Karel Striegel Avatar answered Oct 31 '22 22:10

Karel Striegel