Add sonar-prescan jobs
[releng/global-jjb.git] / docs / jjb / lf-python-jobs.rst
index deb08c2..c36ba8b 100644 (file)
@@ -5,23 +5,12 @@ Python Jobs
 Job Groups
 ==========
 
 Job Groups
 ==========
 
-{project-name}-python-jobs
---------------------------
+.. include:: ../job-groups.rst
 
 
-Jobs for Python projects using Gerrit.
+Below is a list of Maven job groups:
 
 
-:Includes:
-
-    - gerrit-tox-verify
-
-{project-name}-github-python-jobs
----------------------------------
-
-Jobs for Python projects using GitHub.
-
-:Includes:
-
-    - github-tox-verify
+.. literalinclude:: ../../jjb/lf-python-job-groups.yaml
+   :language: yaml
 
 
 Macros
 
 
 Macros
@@ -46,16 +35,6 @@ Install Tox into a virtualenv.
     :python-version: Version of Python to install into the Tox virtualenv.
         Eg. python2 / python3
 
     :python-version: Version of Python to install into the Tox virtualenv.
         Eg. python2 / python3
 
-lf-infra-tox-sonar
-------------------
-
-Runs Sonar scanning against a Python project.
-
-:Required Parameters:
-
-    :java-version: Version of Java to use to run Sonar.
-    :mvn-version: Version of Maven to use to run Sonar.
-
 lf-tox-install
 --------------
 
 lf-tox-install
 --------------
 
@@ -97,14 +76,26 @@ IQ Server.
 :Optional parameters:
 
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
 :Optional parameters:
 
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
-    :nexus-iq-cli-version: Nexus IQ CLI package version to download and use. (default: 1.44.0-01)
+    :nexus-iq-cli-version: Nexus IQ CLI package version to download and use.
+        (default: 1.44.0-01)
+    :nexus-iq-namespace: Insert a namespace to project AppID for projects that
+        share a Nexus IQ system to avoid project name collision. We recommend
+        inserting a trailing - dash if using this parameter.
+        For example 'odl-'. (default: '')
     :build-timeout: Timeout in minutes before aborting build. (default: 60)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
     :java-version: Version of Java to use for the build. (default: openjdk8)
     :build-timeout: Timeout in minutes before aborting build. (default: 60)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
     :java-version: Version of Java to use for the build. (default: openjdk8)
+    :pre-build-script: Shell script to execute before the CLM builder.
+        For example, install prerequisites or move files to the repo root.
+        (default: a string with only a comment)
     :stream: Keyword used to represent a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
     :stream: Keyword used to represent a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
+    :submodule-timeout: Timeout (in minutes) for checkout operation.
+        (default: 10)
+    :submodule-disable: Disable submodule checkout operation.
+        (default: false)
     :gerrit_clm_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths which used to filter which
         file modifications will trigger a build. Refer to JJB documentation for
     :gerrit_clm_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths which used to filter which
         file modifications will trigger a build. Refer to JJB documentation for
@@ -115,11 +106,11 @@ IQ Server.
 Python Sonar with Tox
 ---------------------
 
 Python Sonar with Tox
 ---------------------
 
-Sonar scans for Python based repos. This job will perform a tox call which
-runs the coverage command to gather tests results. These test results get
-published back into Sonar after running the Sonar goals.
+Sonar scans for Python based repos. This job will invoke tox to run tests
+and gather coverage statistics from test results. Then the job invokes Maven
+with a Sonar goal, which runs a plugin to publish results to a Sonar server.
 
 
-To get the Sonar coverage results, tox.ini needs to exist and configured
+To get the Sonar coverage results, tox.ini needs to exist and be configured
 with coverage commands to run.
 
 The coverage commands define the code that gets executed by the test suites.
 with coverage commands to run.
 
 The coverage commands define the code that gets executed by the test suites.
@@ -155,25 +146,37 @@ https://docs.sonarqube.org/display/PLUG/Python+Coverage+Results+Import
     :build-node: The node to run build on.
     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
         get configured in defaults.yaml)
     :build-node: The node to run build on.
     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
         get configured in defaults.yaml)
-    :mvn-settings: The name of settings file containing credentials for the project.
+    :mvn-settings: The name of the settings file with credentials for the project.
 
 :Optional parameters:
 
 
 :Optional parameters:
 
+    :branch: Git branch, should be master (default: master)
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in minutes before aborting build. (default: 60)
     :cron: Cron schedule when to trigger the job. This parameter also
         supports multiline input via YAML pipe | character in cases where
         one may want to provide more than 1 cron timer.  (default: H 11 * * *
         to run once a day)
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in minutes before aborting build. (default: 60)
     :cron: Cron schedule when to trigger the job. This parameter also
         supports multiline input via YAML pipe | character in cases where
         one may want to provide more than 1 cron timer.  (default: H 11 * * *
         to run once a day)
+    :disable-job: Whether to disable the job (default: false)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    :github-url: URL for Github. (default: https://github.com)
     :java-version: Version of Java to use for the build. (default: openjdk8)
     :mvn-global-settings: The name of the Maven global settings to use for
     :java-version: Version of Java to use for the build. (default: openjdk8)
     :mvn-global-settings: The name of the Maven global settings to use for
-        Maven configuration. (default: global-settings)
+    :mvn-goals: The Maven goal to run first. (default: validate)
     :mvn-version: Version of maven to use. (default: mvn35)
     :mvn-version: Version of maven to use. (default: mvn35)
+    :pre-build-script: Shell script to execute before the Sonar builder.
+        For example, install prerequisites or move files to the repo root.
+        (default: a string with only a comment)
+    :python-version: Python version (default: python2)
+    :sonar-mvn-goal: The Maven goal to run the Sonar plugin. (default: sonar:sonar)
     :stream: Keyword used to represent a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
     :stream: Keyword used to represent a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
+    :submodule-timeout: Timeout (in minutes) for checkout operation.
+        (default: 10)
+    :submodule-disable: Disable submodule checkout operation.
+        (default: false)
     :gerrit_sonar_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths which used to filter which
         file modifications will trigger a build. Refer to JJB documentation for
     :gerrit_sonar_triggers: Override Gerrit Triggers.
     :gerrit_trigger_file_paths: Override file paths which used to filter which
         file modifications will trigger a build. Refer to JJB documentation for
@@ -214,12 +217,19 @@ following pyenv variables before running.
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in minutes before aborting build. (default: 10)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in minutes before aborting build. (default: 10)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    :pre-build-script: Shell script to execute before the Tox builder.
+        For example, install prerequisites or move files to the repo root.
+        (default: a string with only a comment)
     :python-version: Version of Python to configure as a base in virtualenv.
         (default: python3)
     :stream: Keyword representing a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
     :python-version: Version of Python to configure as a base in virtualenv.
         (default: python3)
     :stream: Keyword representing a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
         (default: true)
+    :submodule-timeout: Timeout (in minutes) for checkout operation.
+        (default: 10)
+    :submodule-disable: Disable submodule checkout operation.
+        (default: false)
     :tox-dir: Directory containing the project's tox.ini relative to
         the workspace. Empty works if tox.ini is at project root.
         (default: '')
     :tox-dir: Directory containing the project's tox.ini relative to
         the workspace. Empty works if tox.ini is at project root.
         (default: '')