Created
May 8, 2023 21:19
-
-
Save Jaff/d577601c68fd59b2101b13dd9fb2c4bd to your computer and use it in GitHub Desktop.
Groovy pipeline fragment illustrating file-write issues with JSON blob
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Groovy code: | |
def jsonObject = JsonOutput.toJson(myMeasures) | |
if (args.verbose) { | |
println 'JSON output is ' + jsonObject | |
} | |
def fileResult = sh (label: 'output', returnStatus: true, script:"echo ${jsonObject} > 'output.json'") | |
if (args.verbose) { | |
println 'Shell response from writing file ' + fileResult | |
} | |
} | |
Jenkins output: | |
jsonObject is {"job_name":"foo-config-importer/PR-34","key":"foo-config-importer","name":"Foo Config Importer","measures":{"alert_status":"ERROR","bugs":"18","code_smells":"343","coverage":"64.3","duplicated_blocks":"6","duplicated_lines_density":"1.7","line_coverage":"63.5","lines":"6255","lines_to_cover":"2205","ncloc":"4749","new_bugs":"18","new_code_smells":"343","new_coverage":"64.3","new_duplicated_lines_density":"1.0742","new_line_coverage":"63.5","new_lines":"10054","new_lines_to_cover":"2205","new_maintainability_rating":"1.0","new_reliability_rating":"5.0","new_security_hotspots":"20","new_security_hotspots_to_review_status":"20","new_security_rating":"4.0","new_security_review_rating":"5.0","new_technical_debt":"2221","new_vulnerabilities":"26","reliability_rating":"5.0","security_hotspots":"20","security_hotspots_to_review_status":"20","security_rating":"4.0","security_review_rating":"5.0","sqale_index":"2221","sqale_rating":"1.0","tests":"81","vulnerabilities":"26"},"pullRequest":"34"} | |
Passing jsonObject back to Jenkinsfile, then using: | |
writeJSON file: 'project_measures.json', json: jsonObject | |
Yields file containing: | |
{"job_name":"foo-config-importer/PR-34","key":"foo-config-importer","name":"Foo Config Importer","measures":{"alert_status":"ERROR","bugs":"18","code_smells":"343","coverage":"64.3","duplicated_blocks":"6","duplicated_lines_density":"1.7","line_coverage":"63.5","lines":"6255","lines_to_cover":"2205","ncloc":"4749","new_bugs":"18","new_code_smells":"343","new_coverage":"64.3","new_duplicated_lines_density":"1.0742","new_line_coverage":"63.5","new_lines":"10054","new_lines_to_cover":"2205","new_maintainability_rating":"1.0","new_reliability_rating":"5.0","new_security_hotspots":"20","new_security_hotspots_to_review_status":"20","new_security_rating":"4.0","new_security_review_rating":"5.0","new_technical_debt":"2221","new_vulnerabilities":"26","reliability_rating":"5.0","security_hotspots":"20","security_hotspots_to_review_status":"20","security_rating":"4.0","security_review_rating":"5.0","sqale_index":"2221","sqale_rating":"1.0","tests":"81","vulnerabilities":"26"},"pullRequest":"34"} | |
Contents of output.json from: | |
def fileResult = sh (label: 'output', returnStatus: true, script:"echo ${jsonObject} > 'output.json'") | |
Yields file containing: | |
job_name:Foo-config-importer/PR-34 key:Foo-config-importer name:UDF Tivo Config Importer measures:alert_status:ERROR measures:bugs:18 measures:code_smells:343 measures:coverage:64.3 measures:duplicated_blocks:6 measures:duplicated_lines_density:1.7 measures:line_coverage:63.5 measures:lines:6255 measures:lines_to_cover:2205 measures:ncloc:4749 measures:new_bugs:18 measures:new_code_smells:343 measures:new_coverage:64.3 measures:new_duplicated_lines_density:1.0742 measures:new_line_coverage:63.5 measures:new_lines:10054 measures:new_lines_to_cover:2205 measures:new_maintainability_rating:1.0 measures:new_reliability_rating:5.0 measures:new_security_hotspots:20 measures:new_security_hotspots_to_review_status:20 measures:new_security_rating:4.0 measures:new_security_review_rating:5.0 measures:new_technical_debt:2221 measures:new_vulnerabilities:26 measures:reliability_rating:5.0 measures:security_hotspots:20 measures:security_hotspots_to_review_status:20 measures:security_rating:4.0 measures:security_review_rating:5.0 measures:sqale_index:2221 measures:sqale_rating:1.0 measures:tests:81 measures:vulnerabilities:26 pullRequest:34 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment