Merge "Fix hostname resolve message returned by sudo"
[releng/builder.git] / jjb / releng-templates-java.yaml
1 - job-template:
2     # Template used for running CLM scans
3     # Arguements:
4     #   {name}         - Project Shortname
5     #   {project}      - Fully qualified project name
6     #   {mvn-settings} - Project maven settings file
7     #   {stream}
8     #   {jdk}
9     name: '{project-name}-clm-{stream}'
10
11     project-type: freestyle
12     node: '{build-node}'
13     jdk: '{jdk}'
14
15     properties:
16         - opendaylight-infra-properties:
17             build-days-to-keep: '{build-days-to-keep}'
18
19     parameters:
20         - opendaylight-infra-parameters:
21             project: '{project}'
22             branch: '{branch}'
23             refspec: 'refs/heads/{branch}'
24             artifacts: '{archive-artifacts}'
25
26     scm:
27         - git-scm:
28             refspec: ''
29             branch: '{branch}'
30
31     wrappers:
32         - opendaylight-infra-wrappers:
33             build-timeout: '{build-timeout}'
34
35     triggers:
36         - timed: 'H H * * 6'
37
38     builders:
39         - provide-maven-settings:
40             global-settings-file: 'odl-global-settings'
41             settings-file: '{mvn-settings}'
42         - maven-target:
43             maven-version: 'mvn33'
44             pom: 'pom.xml'
45             goals: 'clean install dependency:tree com.sonatype.clm:clm-maven-plugin:index -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
46             java-opts:
47               - '-Xmx4096m -XX:MaxPermSize=512m'
48             settings: '{mvn-settings}'
49             settings-type: cfp
50             global-settings: 'odl-global-settings'
51             global-settings-type: cfp
52         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
53         - check-clm:
54             application-name: '{project-name}'
55
56     publishers:
57         - email-notification:
58             email-recipients: '{email-recipients}'
59             email-prefix: '[{project-name}]'
60         - opendaylight-infra-shiplogs:
61             maven-version: 'mvn33'
62
63 - job-template:
64     # Template: {project-name}-distribution-check-{stream}
65     # Goal: Build a patch and make sure the distribution can deploy with this change.
66     # Operation: This job template builds a patch, creates a distribution containing
67     #            the patch (making sure dependencies are specified),
68     #            and performs the distribution deploy test.
69
70     name: '{project-name}-distribution-check-{stream}'
71     disabled: false
72
73     project-type: freestyle
74     node: '{build-node}'
75     concurrent: true
76     jdk: '{jdk}'
77
78     properties:
79         - opendaylight-infra-properties:
80             build-days-to-keep: '{build-days-to-keep}'
81
82     parameters:
83         - opendaylight-infra-parameters:
84             project: '{project}'
85             branch: '{branch}'
86             refspec: 'refs/heads/{branch}'
87             artifacts: '{archive-artifacts} **/dependency_tree.txt **/target/surefire-reports/*-output.txt'
88         - integration-distribution-git-url:
89             git-url: '{git-url}'
90
91     scm:
92         - integration-gerrit-scm:
93             basedir: '$GERRIT_PROJECT'
94             refspec: '$GERRIT_REFSPEC'
95             branch: '{branch}'
96         - integration-distribution-scm:
97             branch: '{distribution_branch}'
98
99     wrappers:
100         - opendaylight-infra-wrappers:
101             # Distro-check jobs typically run within 10 - 30 minutes
102             # with 45 minutes being the occassional edge case.
103             # enforce a 60 minute limit to ensure stuck jobs get
104             # cleared up sooner.
105             build-timeout: '60'
106
107     triggers:
108         - gerrit-trigger-patch-submitted:
109             server: '{server-name}'
110             project: '{project}'
111             branch: '{branch}'
112             files: '**'
113
114     builders:
115         # Step zero: Wipe file repositories up front.
116         - shell: |
117             echo "wipe r: the local Maven repository"
118             rm -rfv /tmp/r
119             echo "wipe n: the fake remote (Nexus) repository"
120             rm -rfv /tmp/n
121             echo "wipe t: the transient repository used in some manipulations"
122             rm -rfv /tmp/t
123         # Step one: Online build of the project, using local repository /tmp/r/ and deploying artifacts to /tmp/n/.
124         # Ordinary SingleFeatureTest failures are detected in the verify job, so we can use "q" profile here.
125         - maven-target:
126             maven-version: 'mvn33'
127             pom: '$GERRIT_PROJECT/pom.xml'
128             goals: 'clean deploy dependency:tree -DoutputFile=dependency_tree.txt -V -B -Pq -Djenkins -Dstream={stream} -DaltDeploymentRepository=fake-nexus::default::file:///tmp/n/ -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
129             java-opts:
130                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
131             settings: '{mvn-settings}'
132             settings-type: cfp
133             global-settings: 'odl-global-settings'
134             global-settings-type: cfp
135         # Step two: Verify all deployed artifacts belong to the project's groupId.
136         # This is done by moving the allowed directories out of /tmp/n and checking no files remained there.
137         # The correct directory is derived from $GERRIT_PROJECT.
138         - shell: |
139             mkdir -p /tmp/t/org/opendaylight/$GERRIT_PROJECT
140             mv /tmp/n/org/opendaylight/$GERRIT_PROJECT/* /tmp/t/org/opendaylight/$GERRIT_PROJECT/
141             test `find /tmp/n/ -type f | wc -l` -eq 0
142             rm -rf /tmp/n
143             mv /tmp/t /tmp/n
144         # Step three: Online build of integration distribution.
145         # This step is mainly used for downloading other project artifacts.
146         # Running SingleFeaturesTest here does not seem to be required, so -Pq is used again.
147         - maven-target:
148             maven-version: 'mvn33'
149             pom: 'distribution/pom.xml'
150             goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B -Pq -Djenkins -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
151             java-opts:
152               - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
153             settings: '{mvn-settings}'
154             settings-type: cfp
155             global-settings: 'odl-global-settings'
156             global-settings-type: cfp
157         # Step four: Delete snapshot artifacts from the local repository.
158         # This is critical to detect orphaned artifacts or missing project-internal dependency declarations.
159         # Also other files related to maven repository resolution are removed,
160         # and then empty directories are removed, in order to simplify debugging.
161         - shell: |
162             set +e  # To avoid failures in projects which generate zero snapshot artifacts.
163             find /tmp/r/org/opendaylight/$GERRIT_PROJECT/ -path *-SNAPSHOT* -delete
164             find /tmp/r/ -regex '.*/_remote.repositories\|.*/maven-metadata-local\.xml\|.*/maven-metadata-fake-nexus\.xml\|.*/resolver-status\.properties' -delete
165             find /tmp/r/ -type d -empty -delete
166             echo "# INFO: A listing of project related files left in local repository follows."
167             find /tmp/r/org/opendaylight/$GERRIT_PROJECT/
168             true  # To prevent the possibly non-zero return code from failing the job.
169         # Now the ugly part. It seems that the only way to tell Maven 2+
170         # which remote repositories to use is via settings.xml file.
171         # So we create such a file here, but it needs most of odlparent:settings.xml
172         - shell: |
173             echo '
174             <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
175               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
176               xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
177               https://maven.apache.org/xsd/settings-1.0.0.xsd">
178               <profiles>
179                 <profile>
180                   <id>opendaylight-release</id>
181                   <repositories>
182                     <repository>
183                       <id>opendaylight-mirror</id>
184                       <name>opendaylight</name>
185                       <url>https://nexus.opendaylight.org/content/repositories/public/</url>
186                       <releases><updatePolicy>never</updatePolicy></releases>
187                       <snapshots><enabled>false</enabled></snapshots>
188                     </repository>
189                   </repositories>
190                   <pluginRepositories>
191                     <pluginRepository>
192                       <id>opendaylight-plugin-mirror</id>
193                       <name>opendaylight-plugin</name>
194                       <url>https://nexus.opendaylight.org/content/repositories/public/</url>
195                       <releases><updatePolicy>never</updatePolicy></releases>
196                       <snapshots><enabled>false</enabled></snapshots>
197                     </pluginRepository>
198                   </pluginRepositories>
199                 </profile>
200                 <profile>
201                   <id>file-snapshots</id>
202                   <repositories>
203                     <repository>
204                       <id>file-snapshots</id>
205                       <name>file</name>
206                       <url>file:///tmp/n/</url>
207                       <releases><enabled>false</enabled></releases>
208                     </repository>
209                   </repositories>
210                   <pluginRepositories>
211                     <pluginRepository>
212                       <id>file-plugin-snapshots</id>
213                       <name>file-plugin</name>
214                       <url>file:///tmp/n/</url>
215                       <releases><enabled>false</enabled></releases>
216                     </pluginRepository>
217                   </pluginRepositories>
218                 </profile>
219               </profiles>
220               <activeProfiles>
221                 <activeProfile>file-snapshots</activeProfile>
222                 <activeProfile>opendaylight-release</activeProfile>
223               </activeProfiles>
224             </settings>
225             ' > fake_remotes.xml
226         # # Notes: The settings are minimal in order to detect breakage scenarios while allowing for the following quirks:
227         # # * Some plugins seem to have hardcoded repos, for example check-license looks at repository.apache.org
228         # # * Some plugin artifacts (related to surefire) are not downloaded when tests are skipped.
229         # # * populate-local-repo looks at oss.sonatype.org and does not store things (like guava) to /tmp/r
230         # Step five: Repeat the distribution build but with the new settings.
231         # Here, only the project snapshot artifacts deployed to /tmp/n are available,
232         # which faithfully reproduces conditions in later verify-like job runs.
233         # We cannot use --offline, because: "Cannot access file (file:///tmp/n) in offline mode"
234         # This is where SingleFeatureTest is not skipped.
235         - maven-target:
236             maven-version: 'mvn33'
237             pom: 'distribution/pom.xml'
238             goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -s fake_remotes.xml -V -B -Pq -DskipTests=false -Djenkins -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
239             java-opts:
240               - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
241         # Step six: Run Karaf and verify no critical failures are present.
242         - integration-distribution-check
243
244     publishers:
245         - email-notification:
246             email-recipients: '{email-recipients}'
247             email-prefix: '[{project-name}]'
248         - postbuildscript:
249             builders:
250                 - shell: |
251                     #!/bin/bash
252                     mkdir -p $WORKSPACE/archives
253                     cp karaf*.log $WORKSPACE/archives
254             script-only-if-succeeded: False
255             script-only-if-failed: False
256             mark-unstable-if-failed: True
257         - archive:
258             artifacts: '*.zip'
259         - opendaylight-infra-shiplogs:
260             maven-version: 'mvn33'
261
262 - job-template:
263     name: '{project-name}-integration-{stream}'
264
265     # Job template for ODL integration verify jobs
266     #
267     # This is similar to a normal verify job, but it runs
268     # when a project that's a dependency of your project
269     # is successfully built.
270     #
271     # Required Variables:
272     #     stream:    release stream (eg. boron or carbon)
273     #     branch:    git branch (eg. stable/boron or master)
274
275     project-type: freestyle
276     node: '{build-node}'
277     jdk: '{jdk}'
278
279     properties:
280         - opendaylight-infra-properties:
281             build-days-to-keep: '{build-days-to-keep}'
282
283     parameters:
284         - opendaylight-infra-parameters:
285             project: '{project}'
286             branch: '{branch}'
287             refspec: 'refs/heads/{branch}'
288             artifacts: '{archive-artifacts}'
289
290     scm:
291         - git-scm:
292             refspec: ''
293             branch: '{branch}'
294
295     wrappers:
296         - opendaylight-infra-wrappers:
297             build-timeout: '{build-timeout}'
298
299     triggers:
300         - reverse:
301             jobs: '{dependencies}'
302             result: 'success'
303
304     builders:
305         - jacoco-nojava-workaround
306         - provide-maven-settings:
307             global-settings-file: 'odl-global-settings'
308             settings-file: '{mvn-settings}'
309         - maven-target:
310             maven-version: 'mvn33'
311             goals: '{mvn-goals} -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
312             java-opts:
313               - '{mvn-opts}'
314             settings: '{mvn-settings}'
315             settings-type: cfp
316             global-settings: 'odl-global-settings'
317             global-settings-type: cfp
318
319     publishers:
320         - email-notification:
321             email-recipients: '{email-recipients}'
322             email-prefix: '{email-upstream}'
323         - findbugs
324         - jacoco-report
325         - opendaylight-infra-shiplogs:
326             maven-version: 'mvn33'
327
328 - job-template:
329     name: '{project-name}-merge-{stream}'
330
331     # Job template for ODL merge jobs
332     #
333     # The purpose of this job template is to setup a ODL merge job
334     # and deploy artifacts to Nexus.
335     #
336     # Required Variables:
337     #     stream:    release stream (eg. boron or carbon)
338     #     branch:    git branch (eg. stable/boron or master)
339
340     # Need to keep jobs that deploy to Nexus at end of build as Maven
341     # projects. Maybe reconsider this once upstream moves deploy to a
342     # separate lifecycle:
343     #     https://issues.apache.org/jira/browse/MNG-5666
344     project-type: maven
345     node: '{build-node}'
346     jdk: '{jdk}'
347
348     properties:
349         - opendaylight-infra-properties:
350             build-days-to-keep: 14
351
352     parameters:
353         - opendaylight-infra-parameters:
354             project: '{project}'
355             branch: '{branch}'
356             refspec: 'refs/heads/{branch}'
357             artifacts: '{archive-artifacts}'
358
359     scm:
360         - gerrit-trigger-scm:
361             refspec: ''
362             choosing-strategy: 'default'
363
364     wrappers:
365         - opendaylight-infra-wrappers:
366             build-timeout: '{build-timeout}'
367
368     triggers:
369         - timed: 'H H * * 0'
370         - gerrit-trigger-patch-merged:
371             server-name: '{server-name}'
372             name: '{project}'
373             branch: '{branch}'
374
375     prebuilders:
376         - jacoco-nojava-workaround
377         - provide-maven-settings:
378             global-settings-file: 'odl-global-settings'
379             settings-file: '{mvn-settings}'
380
381     # TODO: Do we want to apply sophisticated checks as in *-distribution-check-*?
382     maven:
383         maven-name: 'mvn33'
384         goals: '{mvn-goals} -V -B -Djenkins -Dmerge -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
385         maven-opts: '{mvn-opts}'
386         settings: '{mvn-settings}'
387         settings-type: cfp
388         global-settings: 'odl-global-settings'
389         global-settings-type: cfp
390         post-step-run-condition: UNSTABLE
391
392     postbuilders:
393         - conditional-step:
394             condition-kind: file-exists
395             condition-filename: deploy-site.xml
396             condition-basedir: workspace
397
398             # The strategy here is intentional to run Maven site:deploy twice
399             # once using regular pom.xml to produce a staged-site which is
400             # then used by deploy-site.xml to push to Nexus. This is a
401             # workaround to Maven Site's default linking code which creates
402             # incorrect URLs for sites due to auto-detection assuming your
403             # project is configured in a certain way which ODL is not.
404             steps:
405             - maven-target:
406                 maven-version: 'mvn33'
407                 pom: pom.xml
408                 goals: 'site:deploy -V -B -Dstream={stream}'
409                 java-opts:
410                     - '-Xmx2g'
411                 settings: '{mvn-settings}'
412                 settings-type: cfp
413                 global-settings: 'odl-global-settings'
414                 global-settings-type: cfp
415             - maven-target:
416                 maven-version: 'mvn33'
417                 pom: deploy-site.xml
418                 goals: 'site:deploy -V -B -Dstream={stream}'
419                 java-opts:
420                     - '-Xmx2g'
421                 settings: '{mvn-settings}'
422                 settings-type: cfp
423                 global-settings: 'odl-global-settings'
424                 global-settings-type: cfp
425
426     reporters:
427         - findbugs
428
429     publishers:
430         - email-notification:
431             email-recipients: '{email-recipients}'
432             email-prefix: '[{project-name}]'
433         - maven-deploy:
434             id: ''
435             unique-version: true
436             deploy-unstable: false
437         - jacoco-report
438         - opendaylight-infra-shiplogs:
439             maven-version: 'mvn33'
440         - trigger:
441             project: 'distribution-merge-{stream}'
442             threshold: SUCCESS
443
444 - job-template:
445     name: '{project-name}-sonar'
446     disabled: false
447
448     project-type: freestyle
449     node: '{build-node}'
450     jdk: 'openjdk8'
451
452     properties:
453         - opendaylight-infra-properties:
454             build-days-to-keep: 7
455
456     parameters:
457         - opendaylight-infra-parameters:
458             project: '{project}'
459             branch: '{branch}'
460             refspec: 'refs/heads/{branch}'
461             artifacts: '{archive-artifacts}'
462
463     scm:
464         - git-scm:
465             refspec: ''
466             branch: 'master'
467
468     wrappers:
469         - opendaylight-infra-wrappers:
470             build-timeout: '{build-timeout}'
471
472     triggers:
473         - timed: 'H H * * 6'
474         - gerrit-trigger-patch-sonar:
475             server-name: '{server-name}'
476             name: '{project}'
477             # FIXME: Make sure this does not alter Gerrit votes, then update docs.
478
479     builders:
480         - jacoco-nojava-workaround
481         - provide-maven-settings:
482             global-settings-file: 'odl-global-settings'
483             settings-file: '{mvn-settings}'
484         - maven-target:
485             maven-version: 'mvn33'
486             goals: '{mvn-goals} -V -B -Djenkins -Dsonar -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
487             maven-opts:
488               - '{mvn-opts}'
489             settings: '{mvn-settings}'
490             settings-type: cfp
491             global-settings: 'odl-global-settings'
492             global-settings-type: cfp
493         - maven-target:
494             maven-version: 'mvn33'
495             # We should switch to the recommended configuration of sonar once
496             # JJB adds support for configurating the Sonar wrapper:
497             #    http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
498             goals: 'sonar:sonar -V -B -Djenkins -Dsonar -Dsonar.host.url=https://sonar.opendaylight.org -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
499             maven-opts:
500               - '{mvn-opts}'
501             settings: '{mvn-settings}'
502             settings-type: cfp
503             global-settings: 'odl-global-settings'
504             global-settings-type: cfp
505
506     publishers:
507         - email-notification:
508             email-recipients: '{email-recipients}'
509             email-prefix: '[{project-name}]'
510         - jacoco-report
511         - findbugs
512         - opendaylight-infra-shiplogs:
513             maven-version: 'mvn33'
514
515 - job-template:
516     name: '{project-name}-validate-autorelease-{stream}'
517     disabled: false
518
519     project-type: freestyle
520     node: '{build-node}'
521     concurrent: true
522     jdk: '{jdk}'
523
524     properties:
525         - opendaylight-infra-properties:
526             build-days-to-keep: 7
527
528     parameters:
529         - opendaylight-infra-parameters:
530             project: '{project}'
531             branch: '{branch}'
532             refspec: 'refs/heads/{branch}'
533             artifacts: '{archive-artifacts}'
534         - autorelease-release-tag:
535             release-tag: 'validate'
536         - autorelease-release-branch:
537             release-branch: '{branch}'
538         - string:
539             name: CLONE_URL
540             default: '{git-url}/releng/autorelease'
541             description: "Autorelease clone URL"
542
543     scm:
544         - git:
545             url: '$CLONE_URL'
546             credentials-id: 'opendaylight-jenkins-ssh'
547             refspec: ''
548             branches:
549                 - 'origin/{branch}'
550             skip-tag: true
551             submodule:
552                 recursive: true
553                 timeout: 60
554
555     wrappers:
556         - opendaylight-infra-wrappers:
557             build-timeout: '{build-timeout}'
558
559     triggers:
560         - gerrit-trigger-patch-submitted:
561             server: '{server-name}'
562             project: '{project}'
563             branch: '{branch}'
564             files: '**/*.xml'
565
566     builders:
567         - jacoco-nojava-workaround
568         - autorelease-checkout-gerrit-patch
569         - autorelease-generate-release-patches
570         # In a perfect world projects should be releasing separately and we consume them
571         # via a project that pulls the release bits from each project from Nexus.
572         # Keep the patches compatible with that ideal, but apply an edit
573         # to enable building in a single maven reactor afterwards.
574         - autorelease-fix-relative-paths
575         - maven-target:
576             maven-version: 'mvn33'
577             pom: validate-pom.xml
578             goals: 'clean install dependency:tree -V -B -T1.5C -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
579             java-opts:
580               - '-Xmx8g'
581             settings: 'autorelease-settings'
582             settings-type: cfp
583             global-settings: 'odl-global-settings'
584             global-settings-type: cfp
585         - maven-target:
586             maven-version: 'mvn33'
587             pom: 'pom.xml'
588             goals: 'clean validate -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
589             java-opts:
590               - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
591             settings: 'autorelease-settings'
592             settings-type: cfp
593             global-settings: 'odl-global-settings'
594             global-settings-type: cfp
595         - autorelease-sys-stats
596
597     publishers:
598         - email-notification:
599             email-recipients: '{email-recipients}'
600             email-prefix: '[autorelease] [{project-name}]'
601         - opendaylight-infra-shiplogs:
602             maven-version: 'mvn33'
603
604 - job-template:
605     name: '{project-name}-verify-{stream}-{maven}-{jdks}'
606
607     # Job template for ODL verify jobs
608     #
609     # The purpose of this job template is to setup a ODL verify job
610     #
611     # Required Variables:
612     #     stream:    release stream (eg. boron or carbon)
613     #     branch:    git branch (eg. stable/boron or master)
614
615     project-type: freestyle
616     node: '{build-node}'
617     concurrent: true
618     jdk: '{jdks}'
619
620     properties:
621         - opendaylight-infra-properties:
622             build-days-to-keep: 7
623
624     parameters:
625         - opendaylight-infra-parameters:
626             project: '{project}'
627             branch: '{branch}'
628             refspec: 'refs/heads/{branch}'
629             artifacts: '{archive-artifacts}'
630
631     scm:
632         - gerrit-trigger-scm:
633             refspec: '$GERRIT_REFSPEC'
634             choosing-strategy: 'gerrit'
635
636     wrappers:
637         - opendaylight-infra-wrappers:
638             build-timeout: '{build-timeout}'
639
640     triggers:
641         - gerrit-trigger-patch-submitted:
642             server: '{server-name}'
643             project: '{project}'
644             branch: '{branch}'
645             files: '**'
646
647     builders:
648         - jacoco-nojava-workaround
649         - provide-maven-settings:
650             global-settings-file: 'odl-global-settings'
651             settings-file: '{mvn-settings}'
652         - maven-target:
653             maven-version: '{mvn-version}'
654             goals: '{mvn-goals} -V -B -Djenkins -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
655             java-opts:
656                 - '{mvn-opts}'
657             settings: '{mvn-settings}'
658             settings-type: cfp
659             global-settings: 'odl-global-settings'
660             global-settings-type: cfp
661
662     publishers:
663         - findbugs
664         - email-notification:
665             email-recipients: '{email-recipients}'
666             email-prefix: '[{project-name}]'
667         - jacoco-report
668         - opendaylight-infra-shiplogs:
669             maven-version: '{mvn-version}'