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

environment directive doesn't properly order GString evaluation

XMLWordPrintable

      On Declarative 1.1.1, with this Pipeline, I get an error:
      repo: https://github.com/bitwiseman/hermann/
      branch: issue/blue-ocean-editor/env-order

      pipeline {
        agent any
        environment {
          test2 = "value2"
          test3 = "${test2}"
          test = "${test2 + test3}"
        }
        stages {
          stage('Install') {
            steps {
              sh 'echo "${test}"'
            }
          }
        }
      }
      

      "groovy.lang.MissingPropertyException: No such property: test2 for class: groovy.lang.Binding"

      This also errors the same way:

      pipeline {
        agent any
        environment {
          test = "${test2 + test3}"
          test2 = "value2"
          test3 = "${test2}"
        }
        stages {
          stage('Install') {
            steps {
              sh 'echo "${test}"'
            }
          }
        }
      }
      

      I'd expect the second example to error, due to out-of-order assignment. If this too can be fixed, that'd be fine, too. But the simple sequential evaluation of show in the first example should always work.

            abayer Andrew Bayer
            bitwiseman Liam Newman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: