Skip to content

Instantly share code, notes, and snippets.

@brianoflan
Created February 10, 2017 21:06
Show Gist options
  • Save brianoflan/5eed7067c4d84a67f9eb3017cb17c506 to your computer and use it in GitHub Desktop.
Save brianoflan/5eed7067c4d84a67f9eb3017cb17c506 to your computer and use it in GitHub Desktop.
Jenkinsfile / Pipeline DSL Groovy check if string is null or empty
def isStringBlankOrNull(s) {
if ( s == null ) {
return true
} else if ( 0 == s.compareTo("") ) {
return true
}
return false
}
stage('some stage') {
node() {
_null = null
blank = ""
names_list = [ "null", "''", "\"\"", "\"\${blank}\"", "\"\${''}\"", "'string single quote'", "\"string double quote\"", "/regular expression/", "\"\${_null}\"", ]
values_list = [ null, '', "", "${blank}", "${''}", 'string single quote', "string double quote", /regular expression/, "${_null}", ]
for (int i = 0; i < names_list.size(); i++ ) {
name = names_list[i]
value = values_list[i]
_isStringBlankOrNull = isStringBlankOrNull(value)
n = ( value == null ) ? true : false
try {
c = value.class
} catch( e ) {
c = ""
}
try {
blank_cmp = value.compareTo("")
} catch( e ) {
blank_cmp = ""
}
echo "${i}: name {${name}} => value {${value}} (Is null: ${n}; class '${c}'; compare to blank: '${blank_cmp}'; isStringBlankOrNull '${_isStringBlankOrNull}')."
}
}
}
// OUTPUT:
// [Pipeline] echo
// 0: name {null} => value {null} (Is null: true; class ''; compare to blank: ''; isStringBlankOrNull 'true').
// [Pipeline] echo
// 1: name {''} => value {} (Is null: false; class 'class java.lang.String'; compare to blank: '0'; isStringBlankOrNull 'true').
// [Pipeline] echo
// 2: name {""} => value {} (Is null: false; class 'class java.lang.String'; compare to blank: '0'; isStringBlankOrNull 'true').
// [Pipeline] echo
// 3: name {"${blank}"} => value {} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '0'; isStringBlankOrNull 'true').
// [Pipeline] echo
// 4: name {"${''}"} => value {} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '0'; isStringBlankOrNull 'true').
// [Pipeline] echo
// 5: name {'string single quote'} => value {string single quote} (Is null: false; class 'class java.lang.String'; compare to blank: '19'; isStringBlankOrNull 'false').
// [Pipeline] echo
// 6: name {"string double quote"} => value {string double quote} (Is null: false; class 'class java.lang.String'; compare to blank: '19'; isStringBlankOrNull 'false').
// [Pipeline] echo
// 7: name {/regular expression/} => value {regular expression} (Is null: false; class 'class java.lang.String'; compare to blank: '18'; isStringBlankOrNull 'false').
// [Pipeline] echo
// 8: name {"${_null}"} => value {null} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '4'; isStringBlankOrNull 'false').
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment