8 .. include:: ../job-groups.rst
10 Below is a list of Maven job groups:
12 .. literalinclude:: ../../jjb/lf-python-job-groups.yaml
22 Run CLM scanning against a Python project.
26 :clm-project-name: Project name in Nexus IQ to send results to.
31 Install Tox into a virtualenv.
35 :python-version: Version of Python to install into the Tox virtualenv.
41 Runs Sonar scanning against a Python project.
45 :java-version: Version of Java to use to run Sonar.
46 :mvn-version: Version of Maven to use to run Sonar.
51 Runs a shell script that installs tox in a Python virtualenv.
55 :python-version: Base Python version to use in the virtualenv. For example
65 CLM scans for Python based repos. This job will call the Nexus IQ CLI
66 directly to run the scans.
68 A new credential named "nexus-iq-xc-clm" needs to exist in the Jenkins credentials.
69 The credential should contain the username and password to access Nexus
74 - {project-name}-python-clm-{stream}
75 - gerrit-python-xc-clm
76 - github-python-xc-clm
78 :Comment Trigger: run-clm
82 :build-node: The node to run build on.
83 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
84 get configured in defaults.yaml)
88 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
89 :nexus-iq-cli-version: Nexus IQ CLI package version to download and use.
91 :nexus-iq-namespace: Insert a namespace to project AppID for projects that
92 share a Nexus IQ system to avoid project name collision. We recommend
93 inserting a trailing - dash if using this parameter.
94 For example 'odl-'. (default: '')
95 :build-timeout: Timeout in minutes before aborting build. (default: 60)
96 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
97 :java-version: Version of Java to use for the build. (default: openjdk8)
98 :pre-build-script: Shell script to execute before the CLM builder.
99 For example, install prerequisites or move files to the repo root.
100 (default: a string with only a comment)
101 :stream: Keyword used to represent a release code-name.
102 Often the same as the branch. (default: master)
103 :submodule-recursive: Whether to checkout submodules recursively.
105 :submodule-timeout: Timeout (in minutes) for checkout operation.
107 :submodule-disable: Disable submodule checkout operation.
109 :gerrit_clm_triggers: Override Gerrit Triggers.
110 :gerrit_trigger_file_paths: Override file paths which used to filter which
111 file modifications will trigger a build. Refer to JJB documentation for
113 https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit
116 Python Sonar with Tox
117 ---------------------
119 Sonar scans for Python based repos. This job will perform a tox call which
120 runs the coverage command to gather tests results. These test results get
121 published back into Sonar after running the Sonar goals.
123 To get the Sonar coverage results, tox.ini needs to exist and configured
124 with coverage commands to run.
126 The coverage commands define the code that gets executed by the test suites.
127 It does not guarantee that the code tests executed properly, but it will help
128 pointing out the code that is not tested at all.
136 coverage run --module pytest --junitxml xunit-results.xml
137 coverage xml --omit=".tox/py27/*","tests/*"
138 coverage report --omit=".tox/py27/*","tests/*"
140 For more details refer to coverage and sonar documentation:
142 https://coverage.readthedocs.io/
144 https://docs.sonarqube.org/display/PLUG/Python+Coverage+Results+Import
148 - {project-name}-tox-sonar
152 :Comment Trigger: run-sonar
154 :Required parameters:
156 :build-node: The node to run build on.
157 :jenkins-ssh-credential: Credential to use for SSH. (Generally should
158 get configured in defaults.yaml)
159 :mvn-settings: The name of settings file containing credentials for the project.
161 :Optional parameters:
163 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
164 :build-timeout: Timeout in minutes before aborting build. (default: 60)
165 :cron: Cron schedule when to trigger the job. This parameter also
166 supports multiline input via YAML pipe | character in cases where
167 one may want to provide more than 1 cron timer. (default: H 11 * * *
169 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
170 :java-version: Version of Java to use for the build. (default: openjdk8)
171 :mvn-global-settings: The name of the Maven global settings to use for
172 Maven configuration. (default: global-settings)
173 :mvn-version: Version of maven to use. (default: mvn35)
174 :pre-build-script: Shell script to execute before the Sonar builder.
175 For example, install prerequisites or move files to the repo root.
176 (default: a string with only a comment)
177 :stream: Keyword used to represent a release code-name.
178 Often the same as the branch. (default: master)
179 :submodule-recursive: Whether to checkout submodules recursively.
181 :submodule-timeout: Timeout (in minutes) for checkout operation.
183 :submodule-disable: Disable submodule checkout operation.
185 :gerrit_sonar_triggers: Override Gerrit Triggers.
186 :gerrit_trigger_file_paths: Override file paths which used to filter which
187 file modifications will trigger a build. Refer to JJB documentation for
189 https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit
195 Tox runner to verify a project on creation of a patch set.
196 This job is pyenv aware so if the image contains an installation of pyenv
197 at /opt/pyenv it will pick it up and run Python tests with the appropriate
198 Python versions. This job will set the following pyenv variables before running.
202 export PYENV_ROOT="/opt/pyenv"
203 export PATH="$PYENV_ROOT/bin:$PATH"
207 - {project-name}-tox-verify-{stream}
211 :Comment Trigger: recheck|reverify
213 :Required Parameters:
215 :build-node: The node to run build on.
216 :jenkins-ssh-credential: Credential to use for SSH. (Generally set
219 :Optional Parameters:
221 :branch: The branch to build against. (default: master)
222 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
223 :build-timeout: Timeout in minutes before aborting build. (default: 10)
224 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
225 :pre-build-script: Shell script to execute before the Tox builder.
226 For example, install prerequisites or move files to the repo root.
227 (default: a string with only a comment)
228 :python-version: Version of Python to configure as a base in virtualenv.
230 :stream: Keyword representing a release code-name.
231 Often the same as the branch. (default: master)
232 :submodule-recursive: Whether to checkout submodules recursively.
234 :submodule-timeout: Timeout (in minutes) for checkout operation.
236 :submodule-disable: Disable submodule checkout operation.
238 :tox-dir: Directory containing the project's tox.ini relative to
239 the workspace. Empty works if tox.ini is at project root.
241 :tox-envs: Tox environments to run. If blank run everything described
242 in tox.ini. (default: '')
243 :gerrit_trigger_file_paths: Override file paths used to filter which
244 file modifications will trigger a build. Refer to JJB documentation for
246 https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit
252 Tox runner to verify a project after merge of a patch set.
253 This job is pyenv aware so if the image contains an installation of pyenv
254 at /opt/pyenv it will pick it up and run Python tests with the appropriate
255 Python versions. This job will set the following pyenv variables before running.
259 export PYENV_ROOT="/opt/pyenv"
260 export PATH="$PYENV_ROOT/bin:$PATH"
264 - {project-name}-tox-merge-{stream}
268 :Comment Trigger: remerge
270 :Required Parameters:
272 :build-node: The node to run build on.
273 :jenkins-ssh-credential: Credential to use for SSH. (Generally set
276 :Optional Parameters:
278 :branch: The branch to build against. (default: master)
279 :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
280 :build-timeout: Timeout in minutes before aborting build. (default: 10)
281 :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
282 :pre-build-script: Shell script to execute before the CLM builder.
283 For example, install prerequisites or move files to the repo root.
284 (default: a string with only a comment)
285 :python-version: Version of Python to configure as a base in virtualenv.
287 :stream: Keyword representing a release code-name.
288 Often the same as the branch. (default: master)
289 :submodule-recursive: Whether to checkout submodules recursively.
291 :submodule-timeout: Timeout (in minutes) for checkout operation.
293 :submodule-disable: Disable submodule checkout operation.
295 :tox-dir: Directory containing the project's tox.ini relative to
296 the workspace. Empty works if tox.ini is at project root.
298 :tox-envs: Tox environments to run. If blank run everything described
299 in tox.ini. (default: '')
300 :gerrit_trigger_file_paths: Override file paths used to filter which
301 file modifications will trigger a build. Refer to JJB documentation for
303 https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit