Operations 3 min read

Jenkinsfile Example with Parameterized Environment and Server Selection

This article presents a complete Jenkinsfile that defines choice parameters for selecting an environment and dynamically populates a server list using Groovy scripts, then demonstrates a simple pipeline stage that validates and echoes the chosen values, aborting the build if validation fails.

DevOps Cloud Academy
DevOps Cloud Academy
DevOps Cloud Academy
Jenkinsfile Example with Parameterized Environment and Server Selection

This article provides a complete Jenkinsfile example that defines choice parameters for selecting an environment (Dev, QA, Stage, Prod) and a corresponding server list, using Groovy scripts for dynamic values.

The pipeline includes an example stage that echoes the selected parameters, validates them, and aborts the build if the server list could not be retrieved.

properties([
    parameters([
        [$class: 'ChoiceParameter',
            choiceType: 'PT_SINGLE_SELECT',
            description: 'Select the Env Name from the Dropdown List',
            filterLength: 1,
            filterable: true,
            name: 'Env',
            randomName: 'choice-parameter-5631314439613978',
            script: [
                $class: 'GroovyScript',
                fallbackScript: [
                    classpath: [],
                    sandbox: false,
                    script: 'return[\'Could not get Env\']'
                ],
                script: [
                    classpath: [],
                    sandbox: false,
                    script: 'return["Dev","QA","Stage","Prod"]'
                ]
            ]
        ],
        [$class: 'CascadeChoiceParameter',
            choiceType: 'PT_SINGLE_SELECT',
            description: 'Select the Server from the Dropdown List',
            filterLength: 1,
            filterable: true,
            name: 'Server',
            randomName: 'choice-parameter-5631314456178619',
            referencedParameters: 'Env',
            script: [
                $class: 'GroovyScript',
                fallbackScript: [
                    classpath: [],
                    sandbox: false,
                    script: 'return[\'Could not get Environment from Env Param\']'
                ],
                script: [
                    classpath: [],
                    sandbox: false,
                    script: '''
if (Env.equals("Dev")){
    return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]
}
else if(Env.equals("QA")){
    return["qaaaa001","qabbb002","qaccc003"]
}
else if(Env.equals("Stage")){
    return["staaa001","stbbb002","stccc003"]
}
else if(Env.equals("Prod")){
    return["praaa001","prbbb002","prccc003"]
}
'''
                ]
            ]
        ]
    ])
])

pipeline {
  environment {
         vari = ""
  }
  agent any
  stages {
      stage ("Example") {
        steps {
         script{
          echo 'Hello'
          echo "${params.Env}"
          echo "${params.Server}"
          if (params.Server.equals("Could not get Environment from Env Param")) {
              echo "Must be the first build after Pipeline deployment.  Aborting the build"
              currentBuild.result = 'ABORTED'
              return
          }
          echo "Crossed param validation"
        } }
      }
  }
}
CI/CDDevOpspipelineGroovyJenkinsParameters
DevOps Cloud Academy
Written by

DevOps Cloud Academy

Exploring industry DevOps practices and technical expertise.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.