Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
Description
Arguments with
{ isLiteral: true, "value": null }fail schema validation.
I think this needs to allow null values: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-api/src/main/resources/ast-schema.json#L50 or alternately, don't include those args in the JSON during conversion? Not sure if they are necessarily equivalent.
Took this valid pipeline:
pipeline { agent { docker { image "httpd:2.4.12" args null } } stages { stage("foo") { steps { sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf' sh 'echo "The answer is 42"' } } } }
which converts to the corresponding JSON, that no longer passes schema validation due to agent docker args null value:
{ "pipeline": { "agent": { "type": "docker", "arguments": [ { "key": "image", "value": { "isLiteral": true, "value": "httpd:2.4.12" } }, { "key": "args", "value": { "isLiteral": true, "value": null } } ] }, "stages": [ { "name": "foo", "branches": [ { "name": "default", "steps": [ { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf" } } ] }, { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "echo \"The answer is 42\"" } } ] } ] } ] } ] } }
Attachments
Issue Links
- links to
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Arguments with _{ isLiteral: true, "value": null }_ fail schema validation. I think this needs to allow null values: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-api/src/main/resources/ast-schema.json#L50 Took this valid pipeline: {code} pipeline { agent { docker { image "httpd:2.4.12" args null } } stages { stage("foo") { steps { sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf' sh 'echo "The answer is 42"' } } } } {code} which converts to the corresponding JSON, that no longer passes schema validation due to agent docker args null value: {code} { "pipeline": { "agent": { "type": "docker", "arguments": [ { "key": "image", "value": { "isLiteral": true, "value": "httpd:2.4.12" } }, { "key": "args", "value": { "isLiteral": true, "value": null } } ] }, "stages": [ { "name": "foo", "branches": [ { "name": "default", "steps": [ { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf" } } ] }, { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "echo \"The answer is 42\"" } } ] } ] } ] } ] } } {code} |
Arguments with { isLiteral: true, "value": null } fail schema validation. I think this needs to allow null values: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-api/src/main/resources/ast-schema.json#L50 Took this valid pipeline: {code} pipeline { agent { docker { image "httpd:2.4.12" args null } } stages { stage("foo") { steps { sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf' sh 'echo "The answer is 42"' } } } } {code} which converts to the corresponding JSON, that no longer passes schema validation due to agent docker args null value: {code} { "pipeline": { "agent": { "type": "docker", "arguments": [ { "key": "image", "value": { "isLiteral": true, "value": "httpd:2.4.12" } }, { "key": "args", "value": { "isLiteral": true, "value": null } } ] }, "stages": [ { "name": "foo", "branches": [ { "name": "default", "steps": [ { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf" } } ] }, { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "echo \"The answer is 42\"" } } ] } ] } ] } ] } } {code} |
Description |
Arguments with { isLiteral: true, "value": null } fail schema validation. I think this needs to allow null values: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-api/src/main/resources/ast-schema.json#L50 Took this valid pipeline: {code} pipeline { agent { docker { image "httpd:2.4.12" args null } } stages { stage("foo") { steps { sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf' sh 'echo "The answer is 42"' } } } } {code} which converts to the corresponding JSON, that no longer passes schema validation due to agent docker args null value: {code} { "pipeline": { "agent": { "type": "docker", "arguments": [ { "key": "image", "value": { "isLiteral": true, "value": "httpd:2.4.12" } }, { "key": "args", "value": { "isLiteral": true, "value": null } } ] }, "stages": [ { "name": "foo", "branches": [ { "name": "default", "steps": [ { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf" } } ] }, { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "echo \"The answer is 42\"" } } ] } ] } ] } ] } } {code} |
Arguments with { isLiteral: true, "value": null } fail schema validation. I think this needs to allow null values: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-api/src/main/resources/ast-schema.json#L50 or alternately, don't include those args in the JSON during conversion? Not sure if they are necessarily equivalent. Took this valid pipeline: {code} pipeline { agent { docker { image "httpd:2.4.12" args null } } stages { stage("foo") { steps { sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf' sh 'echo "The answer is 42"' } } } } {code} which converts to the corresponding JSON, that no longer passes schema validation due to agent docker args null value: {code} { "pipeline": { "agent": { "type": "docker", "arguments": [ { "key": "image", "value": { "isLiteral": true, "value": "httpd:2.4.12" } }, { "key": "args", "value": { "isLiteral": true, "value": null } } ] }, "stages": [ { "name": "foo", "branches": [ { "name": "default", "steps": [ { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf" } } ] }, { "name": "sh", "arguments": [ { "key": "script", "value": { "isLiteral": true, "value": "echo \"The answer is 42\"" } } ] } ] } ] } ] } } {code} |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | In Review [ 10005 ] |
Remote Link | This issue links to "PR #122 (Web Link)" [ 15481 ] |
Resolution | Fixed [ 1 ] | |
Status | In Review [ 10005 ] | Resolved [ 5 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
PR up at https://github.com/jenkinsci/pipeline-model-definition-plugin/pull/122