summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/ci/vendors/Jenkins.java3
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/vendors/JenkinsTest.java6
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();
}