From 48541b32223a6c11f251cfbd9bbc9a0d356cb9f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jan 2021 05:39:34 +0000 Subject: [PATCH 1/7] Bump echarts-api from 4.9.0-2 to 4.9.0-3 Bumps [echarts-api](/~https://github.com/jenkinsci/echarts-api-plugin) from 4.9.0-2 to 4.9.0-3. - [Release notes](/~https://github.com/jenkinsci/echarts-api-plugin/releases) - [Changelog](/~https://github.com/jenkinsci/echarts-api-plugin/blob/master/CHANGELOG.md) - [Commits](/~https://github.com/jenkinsci/echarts-api-plugin/compare/v4.9.0-2...v4.9.0-3) Signed-off-by: dependabot[bot] --- plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index 436bcb31..ab7b19db 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -30,7 +30,7 @@ 3.5.1-2 4.5.3-1 1.10.21-3 - 4.9.0-2 + 4.9.0-3 2.0.0 1.6.0 1.6.0 From a6d50d5ebe13196ee60ff5ec3918a51dd5b3100a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 06:46:39 +0000 Subject: [PATCH 2/7] Bump autograding-model from 0.9.0 to 1.1.0 Bumps [autograding-model](/~https://github.com/uhafner/autograding-model) from 0.9.0 to 1.1.0. - [Release notes](/~https://github.com/uhafner/autograding-model/releases) - [Changelog](/~https://github.com/uhafner/autograding-model/blob/master/CHANGELOG.md) - [Commits](/~https://github.com/uhafner/autograding-model/compare/v0.9.0...v1.1.0) Signed-off-by: dependabot[bot] --- plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index 436bcb31..3f18deed 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -22,7 +22,7 @@ -SNAPSHOT ${project.groupId}.autograding - 0.9.0 + 1.1.0 3.11 From b8d6a9f94784bfbc6c81b1264afd458832cfc704 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 06:47:07 +0000 Subject: [PATCH 3/7] Bump warnings-ng from 8.4.4 to 8.7.0 Bumps [warnings-ng](/~https://github.com/jenkinsci/warnings-ng-plugin) from 8.4.4 to 8.7.0. - [Release notes](/~https://github.com/jenkinsci/warnings-ng-plugin/releases) - [Changelog](/~https://github.com/jenkinsci/warnings-ng-plugin/blob/master/CHANGELOG.md) - [Commits](/~https://github.com/jenkinsci/warnings-ng-plugin/compare/v8.4.4...v8.7.0) Signed-off-by: dependabot[bot] --- plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index 436bcb31..bed46271 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -38,7 +38,7 @@ 1.2.0 1.0-18 1.37 - 8.4.4 + 8.7.0 2.5 3.3 From 65a9c8549142d0c317c8a8e2aad05c80dbd3126b Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Sun, 31 Jan 2021 17:45:00 +0100 Subject: [PATCH 4/7] Update checks API Call. --- .../io/jenkins/plugins/grading/AutoGradingChecksPublisher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/src/main/java/io/jenkins/plugins/grading/AutoGradingChecksPublisher.java b/plugin/src/main/java/io/jenkins/plugins/grading/AutoGradingChecksPublisher.java index 168092df..f3fe93fc 100644 --- a/plugin/src/main/java/io/jenkins/plugins/grading/AutoGradingChecksPublisher.java +++ b/plugin/src/main/java/io/jenkins/plugins/grading/AutoGradingChecksPublisher.java @@ -49,7 +49,7 @@ void publishChecks(final Run run, final TaskListener listener, .withOutput(new ChecksOutputBuilder() .withTitle(report.getHeader()) .withSummary(report.getSummary(score)) - .withText(report.getDetails(score, Collections.emptyList(), warnings)) + .withText(report.getDetails(score, Collections.emptyList())) // FIXME: we need to show the failures here as well .withAnnotations(createAnnotations(warnings)) .build()) .withDetailsURL(getAbsoluteUrl(run)) From a02179678678cb4887636dd2709d33436e6a4121 Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Sun, 31 Jan 2021 17:48:28 +0100 Subject: [PATCH 5/7] Bump version of plugin-util-api to 1.6.1. --- plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index ab7b19db..8f65c605 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -32,7 +32,7 @@ 1.10.21-3 4.9.0-3 2.0.0 - 1.6.0 + 1.6.1 1.6.0 1.2.0 From 032030b9e3ecd4a41a8d0f8c44610c7727856f1d Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Sun, 31 Jan 2021 20:56:43 +0100 Subject: [PATCH 6/7] Add exclusion for analysis-model. --- plugin/pom.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index c31e9b69..c30df9a5 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -43,7 +43,7 @@ 2.5 3.3 2.11.1 - 1.1.1 + 1.2.0 @@ -75,6 +75,12 @@ + + org.jenkins-ci.plugins + apache-httpcomponents-client-4-api + 4.5.13-1.0 + compile + commons-io commons-io @@ -97,6 +103,10 @@ com.github.spotbugs spotbugs-annotations + + edu.hm.hafner + analysis-model + From 64332350444eeb17967f814f459119788889e9b0 Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Thu, 11 Feb 2021 00:11:42 +0100 Subject: [PATCH 7/7] Fix UI tests. --- .../jenkins/plugins/grading/AutoGrader.java | 8 +-- .../grading/AutoGradingPluginUiTest.java | 64 ++++++------------- 2 files changed, 23 insertions(+), 49 deletions(-) diff --git a/plugin/src/main/java/io/jenkins/plugins/grading/AutoGrader.java b/plugin/src/main/java/io/jenkins/plugins/grading/AutoGrader.java index 95c091a7..525abfbd 100644 --- a/plugin/src/main/java/io/jenkins/plugins/grading/AutoGrader.java +++ b/plugin/src/main/java/io/jenkins/plugins/grading/AutoGrader.java @@ -56,13 +56,13 @@ public void perform(@NonNull final Run run, @NonNull final FilePath worksp JacksonFacade jackson = new JacksonFacade(); AggregatedScore score = new AggregatedScore(configuration, log); - log.logInfo("Test Configuration: " + jackson.toJson(score.getTestConfiguration())); + log.logInfo("Test Configuration: %s", jackson.toJson(score.getTestConfiguration())); score.addTestScores(new JenkinsTestSupplier(run)); - log.logInfo("Code Coverage Configuration: " + jackson.toJson(score.getCoverageConfiguration())); + log.logInfo("Code Coverage Configuration: %s", jackson.toJson(score.getCoverageConfiguration())); score.addCoverageScores(new JenkinsCoverageSupplier(run)); - log.logInfo("PIT Mutation Coverage Configuration: " + jackson.toJson(score.getPitConfiguration())); + log.logInfo("PIT Mutation Coverage Configuration: %s", jackson.toJson(score.getPitConfiguration())); score.addPitScores(new JenkinsPitSupplier(run)); - log.logInfo("Static Analysis Configuration: " + jackson.toJson(score.getAnalysisConfiguration())); + log.logInfo("Static Analysis Configuration: %s", jackson.toJson(score.getAnalysisConfiguration())); JenkinsAnalysisSupplier analysisScores = new JenkinsAnalysisSupplier(run); score.addAnalysisScores(analysisScores); diff --git a/ui-tests/src/test/java/io/jenkins/plugins/grading/AutoGradingPluginUiTest.java b/ui-tests/src/test/java/io/jenkins/plugins/grading/AutoGradingPluginUiTest.java index 75f76827..2f891688 100644 --- a/ui-tests/src/test/java/io/jenkins/plugins/grading/AutoGradingPluginUiTest.java +++ b/ui-tests/src/test/java/io/jenkins/plugins/grading/AutoGradingPluginUiTest.java @@ -23,6 +23,7 @@ @WithPlugins({"autograding", "warnings-ng", "junit", "pitmutation", "code-coverage-api", "pipeline-stage-step", "workflow-durable-task-step", "workflow-basic-steps"}) public class AutoGradingPluginUiTest extends AbstractJUnitTest { private static final String AUTOGRADING_PLUGIN_PREFIX = "/autograding_test/"; + private static final String CONFIGURATION = "{\"analysis\":{\"maxScore\":100,\"errorImpact\":-5,\"highImpact\":-3,\"normalImpact\":-2,\"lowImpact\":-1}, \"coverage\":{\"maxScore\":200,\"coveredPercentageImpact\":1,\"missedPercentageImpact\":0}, \"tests\":{\"maxScore\":100,\"passedImpact\":1,\"failureImpact\":-10,\"skippedImpact\":-1}, \"pit\":{\"maxScore\":100,\"detectedImpact\":1,\"undetectedImpact\":-10,\"ratioImpact\":0}}"; /** * Test all cards with all tools. @@ -32,69 +33,42 @@ public void testWithAllCards() { WorkflowJob job = jenkins.jobs.create(WorkflowJob.class); job.sandbox.check(); - String conf = "{\"analysis\":{\"maxScore\":100,\"errorImpact\":-5,\"highImpact\":-3,\"normalImpact\":-2,\"lowImpact\":-1}, \"coverage\":{\"maxScore\":100,\"coveredImpact\":1,\"missedImpact\":-10}, \"tests\":{\"maxScore\":100,\"passedImpact\":1,\"failureImpact\":-10,\"skippedImpact\":-1}, \"pit\":{\"maxScore\":100,\"detectedImpact\":1,\"undetectedImpact\":-10,\"ratioImpact\":0}}"; - configurePipeline(job, conf, "checkstyle-result.xml", "pmd.xml", "cpd.xml", "Main.java", "jacoco.xml", "mutations.xml", "TEST-TestScore.xml"); + configurePipeline(job, CONFIGURATION, "checkstyle-result.xml", "pmd.xml", "cpd.xml", "Main.java", "jacoco.xml", "mutations.xml", "TEST-TestScore.xml"); job.save(); Build build = shouldBuildJobUnstable(job); // unstable due to failing tests AutoGradePageObject pageObject = new AutoGradePageObject(build, buildAutoGradeURLFromJob(job)); - assertThat(pageObject.getTotalScoreInPercent()).isEqualTo("75%"); - assertThat(pageObject.getTotalScores()).containsExactly("92%", "100%", "91%", "18%"); + assertThat(pageObject.getTotalScoreInPercent()).isEqualTo("73%"); + assertThat(pageObject.getTotalScores()).containsExactly("92%", "83%", "91%", "18%"); + verifyTests(pageObject); + verifyCoverage(pageObject); + verifyMutationCoverage(pageObject); + verifyAnalysis(pageObject); + } + + private void verifyTests(final AutoGradePageObject pageObject) { assertThatTestResultsHeaderIsCorrect(pageObject.getTestHeaders()); assertThat(pageObject.getTestBody().get("tests")).containsExactly(3, 1, 1, 5, -8); assertThat(pageObject.getTestFooter()).containsExactly("1", "-10", "-1", "n/a", "n/a"); + } - assertThatCodeCoverageHeaderIsCorrect(pageObject.getCoverageHeaders()); - assertThat(pageObject.getCoverageBody().get("Line Coverage")).containsExactly(83, 17, 0); - assertThat(pageObject.getCoverageBody().get("Conditional Coverage")).containsExactly(83, 17, 0); - assertThat(pageObject.getCoverageFooter()).containsExactly("0", "0", "n/a"); - + private void verifyMutationCoverage(final AutoGradePageObject pageObject) { assertThatPITMutationsHeaderIsCorrect(pageObject.getPitHeaders()); assertThat(pageObject.getPitBody().get("pit")).containsExactly(1, 1, 50, 50, -9); assertThat(pageObject.getPitFooter()).containsExactly("1", "-10", "0", "0", "n/a"); - - assertThatStaticAnalysisHeaderIsCorrect(pageObject.getAnalysisHeaders()); - assertThat(pageObject.getAnalysisBody().get("CheckStyle")).containsExactly(6, 0, 2, 3, 11, -37); - assertThat(pageObject.getAnalysisBody().get("PMD")).containsExactly(0, 0, 3, 0, 3, -6); - assertThat(pageObject.getAnalysisBody().get("CPD")).containsExactly(0, 5, 9, 6, 20, -39); - assertThat(pageObject.getAnalysisBody().get("FindBugs")).containsExactly(0, 0, 0, 0, 0, 0); - assertThat(pageObject.getAnalysisFooter()).containsExactly("-5", "-3", "-2", "-1", "n/a", "n/a"); } - /** - * Test all Cards except Test Results (Tests not present). - */ - @Test - public void testWithAllCardsExceptTestResults() { - WorkflowJob job = jenkins.jobs.create(WorkflowJob.class); - job.sandbox.check(); - - String conf = "{\"analysis\":{\"maxScore\":100,\"errorImpact\":-5,\"highImpact\":-3,\"normalImpact\":-2,\"lowImpact\":-1}, \"coverage\":{\"maxScore\":100,\"coveredImpact\":1,\"missedImpact\":-10}, \"pit\":{\"maxScore\":100,\"detectedImpact\":1,\"undetectedImpact\":-10,\"ratioImpact\":0}}"; - configurePipelineWithoutJUnitTests(job, conf, "checkstyle-result.xml", "pmd.xml", "cpd.xml", "Main.java", "jacoco.xml", "mutations.xml"); - - job.save(); - Build build = shouldBuildJobSuccessfully(job); - - AutoGradePageObject pageObject = new AutoGradePageObject(build, buildAutoGradeURLFromJob(job)); - - assertThat(pageObject.getTotalScoreInPercent()).isEqualTo("69%"); - assertThat(pageObject.getTotalScores()).containsExactly("100%", "100%", "91%", "18%"); - - assertThatTestResultsHeaderIsCorrect(pageObject.getTestHeaders()); - assertThat(pageObject.getTestBody().size()).isZero(); - + private void verifyCoverage(final AutoGradePageObject pageObject) { assertThatCodeCoverageHeaderIsCorrect(pageObject.getCoverageHeaders()); - assertThat(pageObject.getCoverageBody().get("Line Coverage")).containsExactly(83, 17, 0); - assertThat(pageObject.getCoverageBody().get("Conditional Coverage")).containsExactly(83, 17, 0); - assertThat(pageObject.getCoverageFooter()).containsExactly("0", "0", "n/a"); - - assertThatPITMutationsHeaderIsCorrect(pageObject.getPitHeaders()); - assertThat(pageObject.getPitBody().get("pit")).containsExactly(1, 1, 50, 50, -9); - assertThat(pageObject.getPitFooter()).containsExactly("1", "-10", "0", "0", "n/a"); + assertThat(pageObject.getCoverageBody().get("Line Coverage")).containsExactly(83, 17, 83); + assertThat(pageObject.getCoverageBody().get("Conditional Coverage")).containsExactly(83, 17, 83); + assertThat(pageObject.getCoverageFooter()).containsExactly("1", "0", "n/a"); + } + private void verifyAnalysis(final AutoGradePageObject pageObject) { assertThatStaticAnalysisHeaderIsCorrect(pageObject.getAnalysisHeaders()); assertThat(pageObject.getAnalysisBody().get("CheckStyle")).containsExactly(6, 0, 2, 3, 11, -37); assertThat(pageObject.getAnalysisBody().get("PMD")).containsExactly(0, 0, 3, 0, 3, -6);