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\'] }']]] ]) ])}}

            People

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

              Dates

              • Created:
                Updated:
                Resolved: