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

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      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

            Assignee:
            Andrew Bayer
            Reporter:
            Erik Serating
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: