Add sonar-project-file parameter to ci sonar jobs 37/61937/3
authorEric Ball <eball@linuxfoundation.org>
Mon, 7 Oct 2019 21:40:22 +0000 (14:40 -0700)
committerEric Ball <eball@linuxfoundation.org>
Tue, 8 Oct 2019 21:05:02 +0000 (14:05 -0700)
By enabling the caller to override the default project file name with
an empty string, we enable the ability to provide project settings
directly in the sonar-properties field. This removes the requirement
for a "sonar-project.properties" file in the repo.

Change-Id: Ia1069417d3bb2a742a68d6113fbd1d8e0374cbdc
Signed-off-by: Eric Ball <eball@linuxfoundation.org>
docs/jjb/lf-ci-jobs.rst
docs/jjb/lf-macros.rst
jjb/lf-ci-jobs.yaml
jjb/lf-macros.yaml
releasenotes/notes/sonar-no-file-4ff755d749779c33.yaml [new file with mode: 0644]

index 20dde4e..3cd6e72 100644 (file)
@@ -887,14 +887,19 @@ Requires ``SonarQube Scanner for Jenkins``
 Plug-in configurations
     Manage Jenkins --> Configure System --> SonarQube servers
         - Name: Sonar (fixed)
-        - Server URL: https://sonar.server.org/
-        - Server authentication token: none
+        - Server URL: https://sonar.server.org/ or https://sonarcloud.io
+        - Server authentication token: none for local, API token (saved as a
+          "secret text" credential) for Sonarcloud
 
     Manage Jenkins --> Global Tool Configuration --> SonarQube Scanner
         - Name: SonarQube Scanner (fixed)
         - Install automatically
         - Select latest version
 
+.. note:: Sonar properties can be set directly in the job definition by
+   setting the sonar-project-file to ``""`` and adding all properties under
+   ``sonar-properties``.
+
 :Template Names:
 
     - {project-name}-sonar
@@ -903,6 +908,8 @@ Plug-in configurations
 
 :Optional Parameters:
     :sonar-task: Sonar task to run. (default: "")
+    :sonar-project-file: The filename for the project's properties
+        (default: "sonar-project.properties")
     :sonar-properties: Sonar configuration properties. (default: "")
     :sonar-java-opts: JVM options. (default: "")
     :sonar-additional-args: Additional command line arguments. (default: "")
@@ -933,6 +940,8 @@ to run prior to the Sonar scan.
 
 :Optional Parameters:
     :sonar-task: Sonar task to run. (default: "")
+    :sonar-project-file: The filename for the project's properties
+        (default: "sonar-project.properties")
     :sonar-properties: Sonar configuration properties. (default: "")
     :sonar-java-opts: JVM options. (default: "")
     :sonar-additional-args: Additional command line arguments. (default: "")
index ff8c561..49ade4e 100644 (file)
@@ -301,8 +301,14 @@ Runs Jenkins SonarQube plug-in.
 
 Requires ``SonarQube Scanner for Jenkins``
 
+.. note:: Sonar properties can be set directly in the job definition by
+   setting the sonar-project-file to ``""`` and adding all properties under
+   ``sonar-properties``.
+
 :Optional Parameters:
     :sonar-task: Sonar task to run. (default: "")
+    :sonar-project-file: The filename for the project's properties
+        (default: "sonar-project.properties")
     :sonar-properties: Sonar configuration properties. (default: "")
     :sonar-java-opts: JVM options. (default: "")
     :sonar-additional-args: Additional command line arguments. (default: "")
@@ -315,11 +321,17 @@ the macro's caller.
 
 Requires ``SonarQube Scanner for Jenkins``
 
+.. note:: Sonar properties can be set directly in the job definition by
+   setting the sonar-project-file to ``""`` and adding all properties under
+   ``sonar-properties``.
+
 :Required Parameters:
     :lf-sonar-prescan: A builder that will run prior to the Sonar scan.
 
 :Optional Parameters:
     :sonar-task: Sonar task to run. (default: "")
+    :sonar-project-file: The filename for the project's properties
+        (default: "sonar-project.properties")
     :sonar-properties: Sonar configuration properties. (default: "")
     :sonar-java-opts: JVM options. (default: "")
     :sonar-additional-args: Additional command line arguments. (default: "")
index 559e8e6..5be402c 100644 (file)
 
     # Sonar properties
     sonar-task: ""
+    sonar-project-file: "sonar-project.properties"
     sonar-properties: ""
     sonar-java-opts: ""
     sonar-additional-args: ""
       - lf-infra-pre-build
       - lf-infra-sonar:
           sonar-task: "{sonar-task}"
+          sonar-project-file: "{sonar-project-file}"
           sonar-properties: "{sonar-properties}"
           sonar-java-opts: "{sonar-java-opts}"
           sonar-additional-args: "{sonar-additional-args}"
       - lf-infra-pre-build
       - lf-infra-sonar-with-prescan:
           sonar-task: "{sonar-task}"
+          sonar-project-file: "{sonar-project-file}"
           sonar-properties: "{sonar-properties}"
           sonar-java-opts: "{sonar-java-opts}"
           sonar-additional-args: "{sonar-additional-args}"
index c06f0ce..3820a2e 100644 (file)
           sonar-name: Sonar
           scanner-name: SonarQubeScanner
           task: "{sonar-task}"
-          project: "sonar-project.properties"
+          project: "{sonar-project-file}"
           properties: "{sonar-properties}"
           java-opts: "{sonar-java-opts}"
           additional-arguments: "{sonar-additional-args}"
           sonar-name: Sonar
           scanner-name: SonarQubeScanner
           task: "{sonar-task}"
-          project: "sonar-project.properties"
+          project: "{sonar-project-file}"
           properties: "{sonar-properties}"
           java-opts: "{sonar-java-opts}"
           additional-arguments: "{sonar-additional-args}"
diff --git a/releasenotes/notes/sonar-no-file-4ff755d749779c33.yaml b/releasenotes/notes/sonar-no-file-4ff755d749779c33.yaml
new file mode 100644 (file)
index 0000000..4e88772
--- /dev/null
@@ -0,0 +1,8 @@
+---
+upgrade:
+  - |
+    Add sonar-project-file parameter to ci sonar jobs. By enabling the caller
+    to override the default project file name with an empty string, we enable
+    the ability to provide project settings directly in the sonar-properties
+    field. This removes the requirement for a "sonar-project.properties" file
+    in the repo.