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

18 views
Skip to first unread message

Erik Serating

unread,
May 11, 2017, 10:06:19 AM5/11/17
to Jenkins Users
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.

Any ideas on this? Is there a bug filed for this issue?

Thanks,
Erik

Reply all
Reply to author
Forward
0 new messages