Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55271

Jenkinsfile Active Choice Parameter

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      How can i use this dsl script in Multibranch Pipeline jenkinsfile(declerative)?

       

      {{parameters {
      activeChoiceParam('States') {
      description('Select a state option')
      filterable()
      choiceType('SINGLE_SELECT')
      groovyScript

      { script('["Sao Paulo", "Rio de Janeiro", "Parana:selected", "Acre"]') fallbackScript('return ["ERROR"]') }

      }
      activeChoiceReactiveParam('Cities') {
      description('Active Choices Reactive parameter')
      filterable()
      choiceType('CHECKBOX')
      groovyScript {
      script('''
      if (States.equals('Sao Paulo'))

      { return ['Barretos', 'Sao Paulo', 'Itu']; }

      else if (States.equals('Rio de Janeiro')) {
      return ['Rio de Janeiro', 'Mangaratiba']
      } else if (States.equals('Parana')) {
      return ['Curitiba', 'Ponta Grossa']
      } else if (States.equals('Acre')) {
      return ['Rio Branco', 'Acrelandia']
      } else {
      return ['Unknown state']
      }
      ''')
      fallbackScript('return ["Script error!"]')
      }
      referencedParameter('States')
      }
      }}}

      When i use this script in jenkinsfile i get this error:

      WorkflowScript: 23: Build parameters definitions cannot have blocks @ line 23, column 5. activeChoiceParam('States') { ^

      WorkflowScript: 32: Build parameters definitions cannot have blocks @ line 32, column 9. activeChoiceReactiveParam('Cities') { ^

      2 errors

       

      {{at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
      at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
      at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
      at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
      at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
      at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
      at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
      at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
      at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
      at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:131)
      at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:125)
      at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:560)
      at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:521)
      at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:325)
      at hudson.model.ResourceController.execute(ResourceController.java:97)
      at hudson.model.Executor.run(Executor.java:429)}}

      Finished: FAILURE

        Attachments

          Activity

          Hide
          georgihagi Georgi Hagi added a comment -

          0down voteaccept
          I solved that problem as follows:
           {{properties([
          parameters([

          [$class: 'ChoiceParameter', choiceType: 'PT_SINGLE_SELECT', description: 'Select a choice', filterLength: 1, filterable: true, name: 'choice1', randomName: 'choice-parameter-7601235200970', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["ERROR"]'], script: [classpath: [], sandbox: false, script: 'return[\'aaa\',\'bbb\']']]],
          [$class: 'CascadeChoiceParameter', choiceType: 'PT_SINGLE_SELECT', description: 'Active Choices Reactive parameter', filterLength: 1, filterable: true, name: 'choice2', randomName: 'choice-parameter-7601237141171', referencedParameters: 'choice1', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["error"]'], script: [classpath: [], sandbox: false, script: 'if(choice1.equals("aaa")){return [\'a\', \'b\']} else {return [\'aaaaaa\',\'fffffff\']}']]]
          ])
          ])}}

          Show
          georgihagi Georgi Hagi added a comment - 0down voteaccept I solved that problem as follows:  {{properties([ parameters([ [$class: 'ChoiceParameter', choiceType: 'PT_SINGLE_SELECT', description: 'Select a choice', filterLength: 1, filterable: true, name: 'choice1', randomName: 'choice-parameter-7601235200970', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["ERROR"] '], script: [classpath: [], sandbox: false, script: 'return [\'aaa\',\'bbb\'] ']]], [$class: 'CascadeChoiceParameter', choiceType: 'PT_SINGLE_SELECT', description: 'Active Choices Reactive parameter', filterLength: 1, filterable: true, name: 'choice2', randomName: 'choice-parameter-7601237141171', referencedParameters: 'choice1', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["error"] '], script: [classpath: [], sandbox: false, script: 'if(choice1.equals("aaa")){return [\'a\', \'b\'] } else {return [\'aaaaaa\',\'fffffff\'] }']]] ]) ])}}
          Hide
          pkb12345 Prasanta Barik added a comment -

          Hi Georgi,

           

          Please could you let me know where have you put this code snippet in .groovy file or in jenkins file. And also in which location you have put.

           

           

           

          Show
          pkb12345 Prasanta Barik added a comment - Hi Georgi,   Please could you let me know where have you put this code snippet in .groovy file or in jenkins file. And also in which location you have put.      
          Hide
          j_p J P added a comment -

          I am getting the same issue with the parameter separator plugin. Not sure it is localized to this. What is the correct way to do this in the job's DSL?

           

          String sectionHeaderStyleCss = ' color: white; background: green; font-family: Roboto, sans-serif !important; padding: 5px; text-align: center; ' 
          String separatorStyleCss = ' border: 0; border-bottom: 1px dashed #ccc; background: #999; ' 
          pipelineJob("Foo-job") { description("FOO with separators") 
          parameters {
           parameterSeparatorDefinition { name('FOO_1') separatorStyle(separatorStyleCss) sectionHeader('FOO_1') sectionHeaderStyle(sectionHeaderStyleCss) 
          }
          

           

          {{}}

          Show
          j_p J P added a comment - I am getting the same issue with the parameter separator plugin. Not sure it is localized to this. What is the correct way to do this in the job's DSL?   String sectionHeaderStyleCss = ' color: white; background: green; font-family: Roboto, sans-serif !important; padding: 5px; text-align: center; ' String separatorStyleCss = ' border: 0; border-bottom: 1px dashed #ccc; background: #999; ' pipelineJob( "Foo-job" ) { description( "FOO with separators" ) parameters { parameterSeparatorDefinition { name( 'FOO_1' ) separatorStyle(separatorStyleCss) sectionHeader( 'FOO_1' ) sectionHeaderStyle(sectionHeaderStyleCss) }   {{}}

            People

            • Assignee:
              Unassigned
              Reporter:
              georgihagi Georgi Hagi
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: