I created a test jenkins job pipeline. This job has String parameter - 'testVar'
Jenkinsfile code:
println("env.TESTVAR=" + env.TESTVAR)
println("testVar: " + testVar)
println("perform env.testVar = env.testVar + '-changed'")
env.testVar = env.testVar + '-changed'
println("env.testVar=" + env.testVar)
println("params.testVar=" + params.testVar)
println("params.TESTVAR=" + params.TESTVAR)
println("testVar=" + testVar)
I started the job with testVar equal to 'testValue'.
Jenkins output:
[Pipeline] echo
env.TESTVAR=testValue
[Pipeline] echo
testVar: testValue
[Pipeline] echo
perform env.testVar = env.testVar + '-changed'
[Pipeline] echo
env.testVar=testValue-changed
[Pipeline] echo
params.testVar=testValue
[Pipeline] echo
params.TESTVAR=null
[Pipeline] echo
testVar=testValue-changed
[Pipeline] End of Pipeline
I have the following questions:
- Why
env.TESTVAR=testValue? I havetestValueparameter, notTESTVALUE. Are jenkins parameters (accessed from Groove code as env.VARNAME) case-insensitive? - Why
params.TESTVAR=null? Are jenkins parameters (accessed from Groove code as params.VARNAME) case-sensitive? - Why
env.testVar=testValue-changedandtestVar=testValue-changedafter performingenv.testVar = env.testVar + '-changed', butparams.testVar=testValue. Why has the value not changed?