Add sonar-prescan jobs
[releng/global-jjb.git] / docs / jjb / lf-python-jobs.rst
index d527948..c36ba8b 100644 (file)
@@ -5,27 +5,35 @@ 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:
+.. literalinclude:: ../../jjb/lf-python-job-groups.yaml
+   :language: yaml
 
 
-    - gerrit-tox-verify
 
 
-{project-name}-github-python-jobs
----------------------------------
+Macros
+======
 
 
-Jobs for Python projects using GitHub.
+lf-infra-clm-python
+-------------------
 
 
-:Includes:
+Run CLM scanning against a Python project.
 
 
-    - github-tox-verify
+:Required Parameters:
 
 
+    :clm-project-name: Project name in Nexus IQ to send results to.
 
 
-Macros
-======
+lf-infra-tox-install
+--------------------
+
+Install Tox into a virtualenv.
+
+:Required Parameters:
+
+    :python-version: Version of Python to install into the Tox virtualenv.
+        Eg. python2 / python3
 
 lf-tox-install
 --------------
 
 lf-tox-install
 --------------
@@ -57,6 +65,8 @@ IQ Server.
     - gerrit-python-xc-clm
     - github-python-xc-clm
 
     - gerrit-python-xc-clm
     - github-python-xc-clm
 
+:Comment Trigger: run-clm
+
 :Required parameters:
 
     :build-node: The node to run build on.
 :Required parameters:
 
     :build-node: The node to run build on.
@@ -66,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)
-    :build-timeout: Timeout in seconds before aborting build. (default: 60)
+    :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)
     :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
@@ -84,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.
@@ -117,30 +139,44 @@ https://docs.sonarqube.org/display/PLUG/Python+Coverage+Results+Import
     - gerrit-tox-sonar
     - github-tox-sonar
 
     - gerrit-tox-sonar
     - github-tox-sonar
 
+:Comment Trigger: run-sonar
+
 :Required parameters:
 
     :build-node: The node to run build on.
     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
         get configured in defaults.yaml)
 :Required parameters:
 
     :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-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
-    :build-timeout: Timeout in seconds before aborting build. (default: 60)
+    :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)
     :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
@@ -167,6 +203,8 @@ following pyenv variables before running.
     - gerrit-tox-verify
     - github-tox-verify
 
     - gerrit-tox-verify
     - github-tox-verify
 
+:Comment Trigger: recheck|reverify
+
 :Required Parameters:
 
     :build-node: The node to run build on.
 :Required Parameters:
 
     :build-node: The node to run build on.
@@ -177,14 +215,21 @@ following pyenv variables before running.
 
     :branch: The branch to build against. (default: master)
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
 
     :branch: The branch to build against. (default: master)
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
-    :build-timeout: Timeout in seconds before aborting build. (default: 10)
+    :build-timeout: Timeout in minutes before aborting build. (default: 10)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
     :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: '')