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

Variables and functions are no longer binding in a when/expression since version 1.1

      So this was working fine before Pipeline Model Definition version 1.1.
      ==============================
      #!/usr/bin/env groovy
       
      def SKIP_BUILD = false
       
      pipeline {
          stages {
              stage('build') {
                  when {
                      expression {
                          return !SKIP_BUILD
                      }
                  }
                  steps {
                     echo "Do build work here."
                      **                
                  }
              }
       
          }
       
      }
      ================================
       
      In version 1.0.1 the variable "SKIP_BUILD" was bound correctly and the expression could properly evaluate it.
       
      As of version 1.1 (and still in 1.1.4) this results in 
      groovy.lang.MissingPropertyException: No such property: SKIP_BUILD for class: groovy.lang.Binding at groovy.lang.Binding.getVariable(Binding.java:63) Same issue if I was trying to use a function in an expression, it used to work now it does not bind. Both bind fine outside of the expression block.
       
      This is blocking me from upgrading Pipeline plugins for Jenkins

          [JENKINS-44298] Variables and functions are no longer binding in a when/expression since version 1.1

          Erik Serating created issue -
          Andrew Bayer made changes -
          Labels New: declarative-variable-and-method-resolution
          James Dumay made changes -
          Summary Original: Declarative Pipeline - Variables and functions are no longer binding in a when/expression since version 1.1 New: Variables and functions are no longer binding in a when/expression since version 1.1
          James Dumay made changes -
          Epic Link New: JENKINS-45426 [ 183594 ]

          Andrew Bayer added a comment -

          This is fixed as part of JENKINS-42753, there's a relevant test there, and it'll be included in the upcoming Declarative 1.2 release.

          Andrew Bayer added a comment - This is fixed as part of JENKINS-42753 , there's a relevant test there, and it'll be included in the upcoming Declarative 1.2 release.
          Andrew Bayer made changes -
          Link New: This issue depends on JENKINS-42753 [ JENKINS-42753 ]
          Andrew Bayer made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

          Liam Newman added a comment -

          Bulk closing resolved issues.

          Liam Newman added a comment - Bulk closing resolved issues.
          Liam Newman made changes -
          Status Original: Resolved [ 5 ] New: Closed [ 6 ]

            abayer Andrew Bayer
            eserating Erik Serating
            Votes:
            3 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: