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

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

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

              Created:
              Updated:
              Resolved: