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

Ability to set variables shared between stages

XMLWordPrintable

    • Declarative backlog

      It would be extremely useful to be able to share variables between stages ; currently, environment variables are overriden per-stage only, given the following example : 

       

      stages {
          stage('Setup profile') {
              environment {
                  MVNARGS = "-P${params.profile}"
              }
              when {
                  expression {
                      params.profile != '' 
                  }
              }
              steps {
                  echo "deploying as args:${env.MVNARGS} - env:${MVNARGS} - pprofile:${params.profile} - ..."
              }
          }
          stage('Build') {
              steps {
                  sh "mvn ${env.MVNARGS} xxxxxxx"
              }
          }
      }
      

      In Build, MVNARGS is null because the override from the Setup profile is stage scoped.

      I did not find a workaround for this, I've tried to share using the params Map but it's an unmodifiable read-only map. 

      Any ideas ?

       

      Thanks

       

       

            Unassigned Unassigned
            laurentperez laurent perez
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: