diff options
-rw-r--r-- | sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java | 3 | ||||
-rw-r--r-- | sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java index 0471195a91a..62f62975c3a 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java @@ -42,7 +42,8 @@ public class Jenkins implements CiVendor { @Override public boolean isDetected() { // https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project - return isNotBlank(system.envVariable("JENKINS_URL")); + // JENKINS_URL is not enough to identify Jenkins. It can be easily used on a non-Jenkins job. + return isNotBlank(system.envVariable("JENKINS_URL")) && isNotBlank(system.envVariable("EXECUTOR_NUMBER")); } @Override diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java index cc01ceeefbb..386b468591d 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java @@ -40,9 +40,15 @@ public class JenkinsTest { @Test public void isDetected() { setEnvVariable("JENKINS_URL", "http://foo"); + setEnvVariable("EXECUTOR_NUMBER", "12"); assertThat(underTest.isDetected()).isTrue(); setEnvVariable("JENKINS_URL", null); + setEnvVariable("EXECUTOR_NUMBER", "12"); + assertThat(underTest.isDetected()).isFalse(); + + setEnvVariable("JENKINS_URL", "http://foo"); + setEnvVariable("EXECUTOR_NUMBER", null); assertThat(underTest.isDetected()).isFalse(); } |