You've already forked sap-jenkins-library
							
							
				mirror of
				https://github.com/SAP/jenkins-library.git
				synced 2025-10-30 23:57:50 +02:00 
			
		
		
		
	checksPublishResults: prepare reports only if the reporting is active (#2971)
* checksPublishResults: prepare reports only if the reporting is active * test * remove un-used import * dummy in order to trigger checks
This commit is contained in:
		| @@ -11,6 +11,7 @@ import util.BasePiperTest | ||||
|  | ||||
| import static org.hamcrest.Matchers.hasItem | ||||
| import static org.hamcrest.Matchers.containsInAnyOrder | ||||
| import static org.hamcrest.Matchers.empty | ||||
| import static org.hamcrest.Matchers.not | ||||
| import static org.hamcrest.Matchers.allOf | ||||
| import static org.hamcrest.Matchers.is | ||||
| @@ -27,6 +28,7 @@ import util.JenkinsStepRule | ||||
| class ChecksPublishResultsTest extends BasePiperTest { | ||||
|     Map publisherStepOptions | ||||
|     List archiveStepPatterns | ||||
|     List invokedReportingTools | ||||
|  | ||||
|     private JenkinsStepRule stepRule = new JenkinsStepRule(this) | ||||
|  | ||||
| @@ -40,30 +42,49 @@ class ChecksPublishResultsTest extends BasePiperTest { | ||||
|     void init() { | ||||
|         publisherStepOptions = [:] | ||||
|         archiveStepPatterns = [] | ||||
|         invokedReportingTools = [] | ||||
|  | ||||
|         // add handler for generic step call | ||||
|         helper.registerAllowedMethod("recordIssues", [Map.class], { | ||||
|             parameters -> publisherStepOptions[parameters.tools[0].publisher] = parameters | ||||
|             parameters -> | ||||
|             if(parameters.tools[0] in Map && parameters.tools[0].containsKey('publisher')) { | ||||
|               publisherStepOptions[parameters.tools[0].publisher] = parameters; | ||||
|             } | ||||
|         }) | ||||
|         helper.registerAllowedMethod("pmdParser", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "PmdPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "pmdParser"; | ||||
|                 return parameters.plus([publisher: "PmdPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("cpd", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "DryPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "cpd"; | ||||
|                 return parameters.plus([publisher: "DryPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("findBugs", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "FindBugsPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "findBugs"; | ||||
|                 return parameters.plus([publisher: "FindBugsPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("checkStyle", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "CheckStylePublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "checkStyle"; | ||||
|                 return parameters.plus([publisher: "CheckStylePublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("esLint", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "ESLintPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "esLint"; | ||||
|                 return parameters.plus([publisher: "ESLintPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("pyLint", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "PyLintPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "pyLint"; | ||||
|                 return parameters.plus([publisher: "PyLintPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("taskScanner", [Map.class], { | ||||
|             parameters -> return parameters.plus([publisher: "TaskPublisher"]) | ||||
|             parameters -> | ||||
|                 invokedReportingTools << "taskScanner"; | ||||
|                 return parameters.plus([publisher: "TaskPublisher"]) | ||||
|         }) | ||||
|         helper.registerAllowedMethod("archiveArtifacts", [Map.class], { | ||||
|             parameters -> archiveStepPatterns.push(parameters.artifacts) | ||||
| @@ -89,6 +110,8 @@ class ChecksPublishResultsTest extends BasePiperTest { | ||||
|         assertThat(publisherStepOptions, not(hasKey('ESLintPublisher'))) | ||||
|         assertThat(publisherStepOptions, not(hasKey('PyLintPublisher'))) | ||||
|         assertThat(publisherStepOptions, not(hasKey('TaskPublisher'))) | ||||
|  | ||||
|         assertThat(invokedReportingTools, is(empty())) | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
| @@ -306,7 +329,7 @@ class ChecksPublishResultsTest extends BasePiperTest { | ||||
|     @Test | ||||
|     void testPublishWithCustomThresholds() throws Exception { | ||||
|         // test | ||||
|         stepRule.step.checksPublishResults(script: nullScript, pmd: [qualityGates: [[threshold: 20, type: 'TOTAL_LOW', unstable: false],[threshold: 10, type: 'TOTAL_NORMAL', unstable: false]]]) | ||||
|         stepRule.step.checksPublishResults(script: nullScript, pmd: [active: true, qualityGates: [[threshold: 20, type: 'TOTAL_LOW', unstable: false],[threshold: 10, type: 'TOTAL_NORMAL', unstable: false]]]) | ||||
|         // assert | ||||
|         assertThat(publisherStepOptions, hasKey('PmdPublisher')) | ||||
|         assertThat(publisherStepOptions['PmdPublisher'], hasKey('qualityGates')) | ||||
|   | ||||
| @@ -100,22 +100,35 @@ void call(Map parameters = [:]) { | ||||
|         ], configuration) | ||||
|  | ||||
|         // JAVA | ||||
|         report(pmdParser(createToolOptions(configuration.pmd)), configuration.pmd, configuration.archive) | ||||
|         report(cpd(createToolOptions(configuration.cpd)), configuration.cpd, configuration.archive) | ||||
|         report(findBugs(createToolOptions(configuration.findbugs, [useRankAsPriority: true])), configuration.findbugs, configuration.archive) | ||||
|         report(checkStyle(createToolOptions(configuration.checkstyle)), configuration.checkstyle, configuration.archive) | ||||
|         if(configuration.pmd.active) { | ||||
|           report(pmdParser(createToolOptions(configuration.pmd)), configuration.pmd, configuration.archive) | ||||
|         } | ||||
|         if(configuration.cpd.active) { | ||||
|           report(cpd(createToolOptions(configuration.cpd)), configuration.cpd, configuration.archive) | ||||
|         } | ||||
|         if(configuration.findbugs.active) { | ||||
|           report(findBugs(createToolOptions(configuration.findbugs, [useRankAsPriority: true])), configuration.findbugs, configuration.archive) | ||||
|         } | ||||
|         if(configuration.checkstyle.active) { | ||||
|           report(checkStyle(createToolOptions(configuration.checkstyle)), configuration.checkstyle, configuration.archive) | ||||
|         } | ||||
|         // JAVA SCRIPT | ||||
|         report(esLint(createToolOptions(configuration.eslint)), configuration.eslint, configuration.archive) | ||||
|         if(configuration.eslint.active) { | ||||
|           report(esLint(createToolOptions(configuration.eslint)), configuration.eslint, configuration.archive) | ||||
|         } | ||||
|         // PYTHON | ||||
|         report(pyLint(createToolOptions(configuration.pylint)), configuration.pylint, configuration.archive) | ||||
|         if(configuration.pylint.active) { | ||||
|           report(pyLint(createToolOptions(configuration.pylint)), configuration.pylint, configuration.archive) | ||||
|         } | ||||
|         // GENERAL | ||||
|         report(taskScanner(createToolOptions(configuration.tasks, [ | ||||
|             includePattern: configuration.tasks.get('pattern'), | ||||
|             highTags: configuration.tasks.get('high'), | ||||
|             normalTags: configuration.tasks.get('normal'), | ||||
|             lowTags: configuration.tasks.get('low'), | ||||
|         ]).minus([pattern: configuration.tasks.get('pattern')])), configuration.tasks, configuration.archive) | ||||
|  | ||||
|         if(configuration.tasks.active) { | ||||
|           report(taskScanner(createToolOptions(configuration.tasks, [ | ||||
|               includePattern: configuration.tasks.get('pattern'), | ||||
|               highTags: configuration.tasks.get('high'), | ||||
|               normalTags: configuration.tasks.get('normal'), | ||||
|               lowTags: configuration.tasks.get('low'), | ||||
|           ]).minus([pattern: configuration.tasks.get('pattern')])), configuration.tasks, configuration.archive) | ||||
|         } | ||||
|         if (configuration.failOnError && 'FAILURE' == script.currentBuild?.result){ | ||||
|             script.currentBuild.result = 'FAILURE' | ||||
|             error "[${STEP_NAME}] Some checks failed!" | ||||
| @@ -124,14 +137,12 @@ void call(Map parameters = [:]) { | ||||
| } | ||||
|  | ||||
| def report(tool, settings, doArchive){ | ||||
|     if (settings.active) { | ||||
|         def options = createOptions(settings).plus([tools: [tool]]) | ||||
|         echo "recordIssues OPTIONS: ${options}" | ||||
|         // publish | ||||
|         recordIssues(options) | ||||
|         // archive check results | ||||
|         archiveResults(doArchive && settings.get('archive'), settings.get('pattern'), true) | ||||
|     } | ||||
|     def options = createOptions(settings).plus([tools: [tool]]) | ||||
|     echo "recordIssues OPTIONS: ${options}" | ||||
|     // publish | ||||
|     recordIssues(options) | ||||
|     // archive check results | ||||
|     archiveResults(doArchive && settings.get('archive'), settings.get('pattern'), true) | ||||
| } | ||||
|  | ||||
| def archiveResults(archive, pattern, allowEmpty){ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user