Skip to content

Commit 2d83215

Browse files
committed
[FIXED JENKINS-38616] Fixed MavenModule prebuilders when linting gradle and shell scripts
1 parent d819550 commit 2d83215

File tree

6 files changed

+78
-18
lines changed

6 files changed

+78
-18
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ TODO
3333
- Configure Checks (enabled, disabled, change severity)
3434
- Load checks dynamically.
3535
- Jobs action to show those Jenkins lints.
36-
36+
- System.exit in system admin groovy scripts (prebuilder, builders, publishers and parameters)
37+
- Support pipeline
3738

3839
List available Checks
3940
=====================

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
<groupId>org.jenkins-ci.main</groupId>
9494
<artifactId>maven-plugin</artifactId>
9595
<version>2.8</version>
96-
<scope>test</scope>
96+
<optional>true</optional>
9797
</dependency>
9898

9999
<dependency>

src/main/java/org/jenkins/ci/plugins/jenkinslint/check/GradleWrapperChecker.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.jenkins.ci.plugins.jenkinslint.check;
22

33
import hudson.matrix.MatrixProject;
4+
import hudson.maven.MavenModuleSet;
45
import hudson.model.Item;
56
import hudson.model.Project;
67
import hudson.tasks.Builder;
@@ -27,16 +28,19 @@ public GradleWrapperChecker() {
2728
public boolean executeCheck(Item item) {
2829
boolean found = false;
2930
if (Jenkins.getInstance().pluginManager.getPlugin("gradle") != null) {
30-
if (item.getClass().getName().endsWith("hudson.maven.MavenModuleSet")) {
31-
found = false;
32-
} else {
33-
if (item instanceof Project) {
34-
found = isGradlew(((Project) item).getBuilders());
35-
}
36-
if (item instanceof MatrixProject) {
37-
found = isGradlew(((MatrixProject) item).getBuilders());
31+
32+
if (Jenkins.getInstance().pluginManager.getPlugin("maven-plugin")!=null) {
33+
if (item instanceof MavenModuleSet) {
34+
found = isGradlew(((MavenModuleSet) item).getPrebuilders());
3835
}
3936
}
37+
if (item instanceof Project) {
38+
found = isGradlew(((Project) item).getBuilders());
39+
}
40+
if (item instanceof MatrixProject) {
41+
found = isGradlew(((MatrixProject) item).getBuilders());
42+
}
43+
4044
}
4145
return found;
4246
}

src/main/java/org/jenkins/ci/plugins/jenkinslint/check/HardcodedScriptChecker.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import hudson.model.Item;
55
import hudson.model.Project;
66
import hudson.tasks.Builder;
7+
import hudson.maven.MavenModuleSet;
78
import hudson.tasks.CommandInterpreter;
9+
import jenkins.model.Jenkins;
810
import org.jenkins.ci.plugins.jenkinslint.model.AbstractCheck;
911

1012
import java.util.List;
@@ -28,16 +30,17 @@ public HardcodedScriptChecker() {
2830
public boolean executeCheck(Item item) {
2931
LOG.log(Level.FINE, "executeCheck " + item);
3032
boolean found = false;
31-
if (item.getClass().getName().endsWith("hudson.maven.MavenModuleSet")) {
32-
found = false;
33-
} else {
34-
if (item instanceof Project) {
35-
found = isBuilderHarcoded (((Project)item).getBuilders());
36-
}
37-
if (item instanceof MatrixProject) {
38-
found = isBuilderHarcoded (((MatrixProject)item).getBuilders());
33+
if (Jenkins.getInstance().pluginManager.getPlugin("maven-plugin")!=null) {
34+
if (item instanceof MavenModuleSet) {
35+
found = isBuilderHarcoded(((MavenModuleSet) item).getPrebuilders());
3936
}
4037
}
38+
if (item instanceof Project) {
39+
found = isBuilderHarcoded (((Project)item).getBuilders());
40+
}
41+
if (item instanceof MatrixProject) {
42+
found = isBuilderHarcoded (((MatrixProject)item).getBuilders());
43+
}
4144
return found;
4245
}
4346

src/test/java/org/jenkins/ci/plugins/jenkinslint/check/GradleWrapperCheckerTestCase.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ public class GradleWrapperCheckerTestCase {
7070
assertFalse(checker.isIgnored(project.getDescription()));
7171
project.setDescription("#lint:ignore:" + checker.getClass().getSimpleName());
7272
assertTrue(checker.isIgnored(project.getDescription()));
73+
project.delete();
74+
MavenModuleSet mavenProject = j.createMavenProject();
75+
assertFalse(checker.isIgnored(mavenProject.getDescription()));
76+
mavenProject.setDescription("#lint:ignore:" + checker.getClass().getSimpleName());
77+
assertTrue(checker.isIgnored(mavenProject.getDescription()));
7378
}
7479
//@Issue("JENKINS-29427")
7580
@Test public void testAnotherBuilders() throws Exception {
@@ -82,4 +87,24 @@ public class GradleWrapperCheckerTestCase {
8287
assertFalse(checker.executeCheck(project));
8388
project.delete();
8489
}
90+
//@Issue("JENKINS-38616")
91+
@Test public void testMavenModuleJob() throws Exception {
92+
MavenModuleSet project = j.createMavenProject();
93+
assertFalse(checker.executeCheck(project));
94+
}
95+
//@Issue("JENKINS-38616")
96+
@Test public void testMavenModuleJobbWithHardcodedScript() throws Exception {
97+
MavenModuleSet project = j.createMavenProject();
98+
project.getPrebuilders().add(new hudson.tasks.Shell("#!/bin/bash #single line"));
99+
assertFalse(checker.executeCheck(project));
100+
project.delete();
101+
project = j.createMavenProject("WithoutWrapper");
102+
project.getPrebuilders().add(new hudson.plugins.gradle.Gradle("description","switches","tasks","rootBuildScriptDir","buildFile","gradleName", false, false, false, false));
103+
project.save();
104+
assertTrue(checker.executeCheck(project));
105+
project.delete();
106+
project = j.createMavenProject("WithWrapper");
107+
project.getPrebuilders().add(new hudson.plugins.gradle.Gradle("description","switches","tasks","rootBuildScriptDir","buildFile","gradleName", true, false, false, false));
108+
assertFalse(checker.executeCheck(project));
109+
}
85110
}

src/test/java/org/jenkins/ci/plugins/jenkinslint/check/HardcodedScriptCheckerTestCase.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ public class HardcodedScriptCheckerTestCase {
7575
assertFalse(checker.isIgnored(project.getDescription()));
7676
project.setDescription("#lint:ignore:" + checker.getClass().getSimpleName());
7777
assertTrue(checker.isIgnored(project.getDescription()));
78+
MavenModuleSet mavenProject = j.createMavenProject();
79+
assertFalse(checker.isIgnored(mavenProject.getDescription()));
80+
mavenProject.setDescription("#lint:ignore:" + checker.getClass().getSimpleName());
81+
assertTrue(checker.isIgnored(mavenProject.getDescription()));
7882
}
7983
//@Issue("JENKINS-29427")
8084
@Test public void testAnotherBuilders() throws Exception {
@@ -87,4 +91,27 @@ public class HardcodedScriptCheckerTestCase {
8791
assertFalse(checker.executeCheck(project));
8892
project.delete();
8993
}
94+
//@Issue("JENKINS-38616")
95+
@Test public void testMavenModuleJob() throws Exception {
96+
MavenModuleSet project = j.createMavenProject();
97+
assertFalse(checker.executeCheck(project));
98+
}
99+
//@Issue("JENKINS-38616")
100+
@Test public void testMavenModuleJobbWithHardcodedScript() throws Exception {
101+
MavenModuleSet project = j.createMavenProject();
102+
project.getPrebuilders().add(new hudson.tasks.Shell("#!/bin/bash #single line"));
103+
assertFalse(checker.executeCheck(project));
104+
project.delete();
105+
project = j.createMavenProject("Bash_Multiple_Line");
106+
project.getPrebuilders().add(new hudson.tasks.Shell("#!/bin/bash\nline1\nline2\nline3\nline4\nline5\nline6"));
107+
assertTrue(checker.executeCheck(project));
108+
project.delete();
109+
project = j.createMavenProject("Batch_Single_Line");
110+
project.getPrebuilders().add(new hudson.tasks.BatchFile("echo first"));
111+
assertFalse(checker.executeCheck(project));
112+
project.delete();
113+
project = j.createMavenProject("Batch_Multiple_Line");
114+
project.getPrebuilders().add(new hudson.tasks.BatchFile("echo first\nline1\nline2\nline3\nline4\nline5\nline6"));
115+
assertTrue(checker.executeCheck(project));
116+
}
90117
}

0 commit comments

Comments
 (0)