Skip to content

Commit

Permalink
Make API method of quality result accessible.
Browse files Browse the repository at this point in the history
  • Loading branch information
uhafner committed Jan 2, 2024
1 parent afb3d2a commit 69d72f5
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 11 deletions.
2 changes: 1 addition & 1 deletion plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<argLine>-Djava.awt.headless=true -Xmx1024m -Djenkins.test.timeout=1000 --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED</argLine>

<prism-api.version>1.29.0-8</prism-api.version>
<plugin-util-api.version>3.9.0-rc848.2d5e600a_712a_</plugin-util-api.version>
<plugin-util-api.version>3.9.0-rc849.401125b_7782e</plugin-util-api.version>

</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.verb.POST;
import hudson.Extension;
Expand Down Expand Up @@ -53,15 +54,35 @@ public WarningsQualityGate(final int threshold, final QualityGateType type) {
* the minimum number of issues that fails the quality gate
* @param type
* the type of the quality gate
* @param criticality the criticality of the quality gate
* @param criticality
* the criticality of the quality gate
*/
public WarningsQualityGate(final int threshold, final QualityGateType type, final QualityGateCriticality criticality) {
public WarningsQualityGate(final int threshold, final QualityGateType type,
final QualityGateCriticality criticality) {
super(threshold);

this.type = type;
setCriticality(criticality);
}

/**
* Sets the criticality of the quality gate.
*
* @param unstable
* the criticality of the quality gate
* @deprecated use {@link #setCriticality(QualityGateCriticality)} instead
*/
@DataBoundSetter
@Deprecated
public void setUnstable(final boolean unstable) {
if (unstable) {
setCriticality(QualityGateCriticality.UNSTABLE);
}
else {
setCriticality(QualityGateCriticality.FAILURE);
}
}

/**
* Returns the method that should be used to determine the actual number of issues in the build.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,8 +328,7 @@ void shouldCreateUnstableResultWithNotIgnoredUnstableInBetween() {
// #3 UNSTABLE (Reference #2)
cleanAndCopy(project, "eclipse8Warnings.txt");
issuesRecorder.setQualityGates(List.of(
new WarningsQualityGate(3, QualityGateType.NEW, QualityGateCriticality.UNSTABLE)));
issuesRecorder.setQualityGates(List.of(
new WarningsQualityGate(3, QualityGateType.NEW, QualityGateCriticality.UNSTABLE),
new WarningsQualityGate(9, QualityGateType.TOTAL, QualityGateCriticality.UNSTABLE)));

scheduleBuildAndAssertStatus(project, Result.UNSTABLE, analysisResult -> assertThat(analysisResult)
Expand Down Expand Up @@ -636,11 +635,10 @@ void shouldCreateUnstableResultWithNotIgnoredUnstableInBetweenWithReferenceBuild
FreeStyleProject project = createJob(JOB_NAME, "eclipse8Warnings.txt");
enableWarnings(project, recorder -> {
recorder.setQualityGates(List.of(
new WarningsQualityGate(3, QualityGateType.NEW, QualityGateCriticality.UNSTABLE)));
new WarningsQualityGate(3, QualityGateType.NEW, QualityGateCriticality.UNSTABLE),
new WarningsQualityGate(9, QualityGateType.TOTAL, QualityGateCriticality.UNSTABLE)));
recorder.setReferenceJobName(REFERENCE_JOB_NAME);
recorder.setIgnoreQualityGate(true);
recorder.setQualityGates(List.of(
new WarningsQualityGate(9, QualityGateType.TOTAL, QualityGateCriticality.UNSTABLE)));
});
scheduleBuildAndAssertStatus(project, Result.UNSTABLE, analysisResult -> assertThat(analysisResult)
.hasTotalSize(8)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ private void configurePublisher(final WorkflowJob job, final String fileName, fi
+ " echo '[name=' + action.getDisplayName() + ']' \n"
+ " echo '[isSuccessful=' + action.isSuccessful() + ']' \n"
+ " def result = action.getResult()\n"
+ " def status = result.getQualityGateStatus()\n"
+ " def status = result.getQualityGateResult()\n"
+ " echo '[status=' + status + ']' \n"
+ " echo '[isSuccessfulQualityGate=' + status.isSuccessful() + ']' \n"
+ " def totals = result.getTotals()\n"
Expand Down Expand Up @@ -1101,7 +1101,7 @@ void publishIssuesShouldMarkStepWithWarningAction() {
assertThat(publishIssuesNode).isNotNull();
WarningAction warningAction = publishIssuesNode.getPersistentAction(WarningAction.class);
assertThat(warningAction).isNotNull();
assertThat(warningAction.getMessage()).isEqualTo(
assertThat(warningAction.getMessage()).endsWith(
"Some quality gates have been missed: overall result is UNSTABLE");
}

Expand All @@ -1123,7 +1123,7 @@ void recordIssuesShouldMarkStepWithWarningAction() {
assertThat(publishIssuesNode).isNotNull();
WarningAction warningAction = publishIssuesNode.getPersistentAction(WarningAction.class);
assertThat(warningAction).isNotNull();
assertThat(warningAction.getMessage()).isEqualTo(
assertThat(warningAction.getMessage()).endsWith(
"Some quality gates have been missed: overall result is UNSTABLE");
}

Expand Down

0 comments on commit 69d72f5

Please sign in to comment.