properties([ parameters([ [ $class : 'ChoiceParameter', choiceType : 'PT_SINGLE_SELECT', name : 'releaseBranch', description: 'Choose branch name*', script : [ $class: 'GroovyScript', script: [ classpath: [], sandbox: true, script: """ return [ "main", "brancha", "branchb" ] """ ] ] ], [ $class : 'CascadeChoiceParameter', choiceType : 'PT_SINGLE_SELECT', name : 'releaseNumber', description : 'Put the release number*', referencedParameters: 'releaseBranch', script : [ $class : 'GroovyScript', fallbackScript: [ classpath: [], sandbox : false, script : "return ['Could not get releaseBranch param']" ], script : [ classpath: [], sandbox : false, script : """ if (!releaseBranch.isEmpty()) { return [ releaseBranch + "-v1", releaseBranch + "-v2", releaseBranch + "-v3" ] } return [] """ ] ] ], [ $class : 'CascadeChoiceParameter', choiceType : 'PT_SINGLE_SELECT', name : 'serviceName', referencedParameters: 'releaseBranch, releaseNumber', description : 'Choose service name*', script : [ $class : 'GroovyScript', fallbackScript: [ classpath: [], sandbox : false, script : "return ['Could not get either releaseBranch or releaseNumber param(s)']" ], script : [ classpath: [], sandbox : false, script : """ if (!(releaseBranch.isEmpty() || releaseNumber.isEmpty())) { return [ releaseBranch + "/" + releaseNumber + "/test", releaseBranch + "/" + releaseNumber + "/staging" ] } return [] """ ] ] ] ]) ]) pipeline { agent any options { buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '6', daysToKeepStr: '', numToKeepStr: '6') } stages { stage('Deploy on DEV') { steps { script { sh 'echo Hello' } } } } }