I have a jenkins groovy script like this:
freeStyleJob(“test”) {
properties { githubProjectUrl(‘…’) }
description(‘’’job description’’’.stripMargin('|'))
logRotator{ numToKeep(100) }
parameters {
stringParam(’STRINGP1’, "", “STRINGP1 description”)
stringParam('STRINGP2’, "", “StringP2 description”)
booleanParam(‘b1’, false)
booleanParam(‘b2’, false)
booleanParam(‘b3’, false)
stringParam("EMAIL_LIST", "", "Emails")
}
scm {
github(‘repo’, '${STRINGP1}', 'git', ‘giturl’)
}
steps {
shell '''|#!/bin/bash
|ARGS=""
|fi
|if [[ ‘${b1}’ ]]; then
| ARGS=$ARGS" —-p b1”
|fi
|if [[ ‘${b2}’ ]]; then
| OS_ARGS=$ARGS" —-p b2”
|fi
|if [[ ‘${b3}’ ]]; then
| ARGS=$ARGS" —-p b3”
|fi
|echo ${ARGS}'''.stripMargin('|')
}
publishers {
archiveArtifacts {
pattern(‘pattern’)
}
extendedEmail {
....
}
}
}
....
}
After the creation of job no matter whether user checks or unchecks the boolean parameter in the UI, the value for ARGS would be always "--p b1 ---p b2 --p b3". It means that the three if that exist in the shell script will be always evaluated to true. Why does this happen?