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