-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Jenkins 1.107.2-Rolling
pipeline-build-step 2.7 version
When using build step and a choice parameter plugin it accepts any value. Also, it accepts parameters that are not defined.
Here we have an example that shows that behavior.
We need two pipeline jobs:
Main job:
stage ('UpstreamJob')\{ build job: 'DownstreamJob', parameters: [ string(name: 'ARTIFACT_NAME', value: "myArtifact_5.5.5.zip"), string(name: 'DEPLOY_PHASE', value: "Production"), string(name: 'DEPLOYMENT_COLOR', value: "purple"), string(name: 'SOMEEXTRAVAR', value: "Woohoo I can do whatever I want!") ] }
And a Downstream Job:
properties([ parameters([ string( name: 'ARTIFACT_NAME', description: 'Name of the artifact to deploy', defaultValue: 'myArtifact_1.0.zip' ), choice( choices: ["Development"].join("\n"), description: 'Only development is allowed!', name: 'DEPLOY_PHASE'), choice( choices: ["blue", "green"].join("\n"), description: 'Color of Blue/Green deployment option', name: 'DEPLOYMENT_COLOR') ]) ]) UserInput = "User Supplied Values:\n" params.each\{ k, v -> UserInput = UserInput + """ $\{k}\n $\{v}\n""" } echo UserInput stage ('DownstreamJob')\{ echo "The value of SOMEEXTRAVAR: $SOMEEXTRAVAR" }
When executing the main job the result is:
User Supplied Values: DEPLOYMENT_COLOR purple DEPLOY_PHASE Production SOMEEXTRAVAR Woohoo I can do whatever I want! ARTIFACT_NAME myArtifact_5.5.5.zip [Pipeline] stage [Pipeline] \{ (DownstreamJob) [Pipeline] } [Pipeline] // stage [Pipeline] End of Pipeline groovy.lang.MissingPropertyException: No such property: SOMEEXTRAVAR for class: groovy.lang.Binding at groovy.lang.Binding.getVariable(Binding.java:63) at
Here we see that the choice value accepts values that are not defined and also the "SOMEEXTRAVAR" that is not a parameter has accepted that value perhaps after executing that step the pipeline build failed telling that there is no valid value for that variable
- links to