Update automated project templates
[releng/builder.git] / jjb / docs / docs.yaml
1 # REMOVE THIS LINE IF YOU WANT TO CUSTOMIZE ANYTHING BELOW
2 # Otherwise this file will be automatically overwritten by the template
3 # autobuilder.
4
5 # ODL Releng build templates
6 - project:
7     name: docs
8     jobs:
9         - 'docs-verify-{stream}'
10         - 'docs-merge-{stream}'
11         - 'docs-periodic-{stream}'
12         - 'docs-distribution-{stream}'
13         - 'docs-distribution-check-{stream}'
14         - 'docs-integration-{stream}'
15         - 'docs-sonar'
16         - 'docs-clm-{stream}'
17         - 'docs-validate-autorelease-{stream}'
18
19
20     # stream:    release stream (eg. stable-lithium or beryllium)
21     # branch:    git branch (eg. stable/lithium or master)
22     stream:
23         - boron:
24             branch: 'master'
25             jdk: openjdk8
26             jdks:
27                 - openjdk8
28             disable_autorelease: False
29             disable_distribution_check: True
30         - beryllium:
31             branch: 'stable/beryllium'
32             jdk: openjdk7
33             jdks:
34                 - openjdk7
35                 - openjdk8
36             disable_autorelease: False
37             disable_distribution_check: True
38         - stable-lithium:
39             branch: 'stable/lithium'
40             jdk: openjdk7
41             jdks:
42                 - openjdk7
43             disable_autorelease: True
44             disable_distribution_check: True
45         - stable-helium:
46             branch: 'stable/helium'
47             jdk: openjdk7
48             jdks:
49                 - openjdk7
50             disable_autorelease: True
51             disable_distribution_check: True
52
53     project: 'docs'
54
55 # For the Job templates below replace instances of:
56 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
57 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
58 # MAVEN_GOALS with your maven goals to build
59 # MAVEN_OPTS with your maven options to build
60
61 - job-template:
62     name: 'docs-verify-{stream}'
63
64     # Job template for ODL verify jobs
65     #
66     # The purpose of this job template is to setup a ODL verify job
67     #
68     # Required Variables:
69     #     stream:    release stream (eg. stable-lithium or beryllium)
70     #     branch:    git branch (eg. stable/lithium or master)
71
72     project-type: matrix
73     node: matrix_master
74     concurrent: true
75
76     axes:
77         - axis:
78             type: slave
79             name: nodes
80             values:
81                 - dynamic_verify
82         - axis:
83             type: jdk
84             values: '{obj:jdks}'
85
86     logrotate:
87         daysToKeep: '{build-days-to-keep}'
88         numToKeep: '{build-num-to-keep}'
89         artifactDaysToKeep: '{build-artifact-days-to-keep}'
90         artifactNumToKeep: '{build-artifact-num-to-keep}'
91
92     parameters:
93         - project-parameter:
94             project: '{project}'
95         - gerrit-parameter:
96             branch: '{branch}'
97         - gerrit-refspec-parameter:
98             refspec: 'refs/heads/{branch}'
99
100     scm:
101         - gerrit-trigger-scm:
102             credentials-id: '{ssh-credentials}'
103             refspec: '$GERRIT_REFSPEC'
104             choosing-strategy: 'gerrit'
105
106     wrappers:
107         - build-timeout
108         - ssh-agent-credentials:
109             users:
110                 - '{ssh-credentials}'
111
112     triggers:
113         - gerrit-trigger-patch-submitted:
114             name: 'docs'
115             branch: '{branch}'
116
117     builders:
118         - wipe-org-opendaylight-repo
119         - jacoco-nojava-workaround
120         - provide-maven-settings:
121             global-settings-file: '{odl-global-settings}'
122             settings-file: '{docs-settings}'
123         - maven-target:
124             maven-version: '{mvn33}'
125             pom: 'pom.xml'
126             goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dstream={stream}'
127             java-opts:
128                 - '-Xmx1024m -XX:MaxPermSize=256m'
129             settings: '{docs-settings}'
130             global-settings: '{odl-global-settings}'
131
132     publishers:
133         - archive-artifacts:
134             artifacts: '**/target/surefire-reports/*-output.txt, '
135         - findbugs
136         - email-notification:
137             email-prefix: '[docs]'
138         - jacoco-report
139
140 - job-template:
141     name: 'docs-merge-{stream}'
142
143     # Job template for ODL merge jobs
144     #
145     # The purpose of this job template is to setup a ODL merge job
146     # and deploy artifacts to Nexus.
147     #
148     # Required Variables:
149     #     stream:    release stream (eg. stable-lithium or beryllium)
150     #     branch:    git branch (eg. stable/lithium or master)
151
152     project-type: maven
153     node: dynamic_merge
154     jdk: '{jdk}'
155
156     logrotate:
157         daysToKeep: '14'
158         numToKeep: '10'
159         artifactDaysToKeep: '{build-artifact-days-to-keep}'
160         artifactNumToKeep: '{build-artifact-num-to-keep}'
161
162     parameters:
163         - project-parameter:
164             project: '{project}'
165         - gerrit-parameter:
166             branch: '{branch}'
167         - gerrit-refspec-parameter:
168             refspec: 'refs/heads/{branch}'
169
170     scm:
171         - gerrit-trigger-scm:
172             credentials-id: '{ssh-credentials}'
173             refspec: ''
174             choosing-strategy: 'default'
175
176     wrappers:
177         - build-timeout
178         - ssh-agent-credentials:
179             users:
180                 - '{ssh-credentials}'
181
182     triggers:
183         - timed: 'H H * * 0'
184         - gerrit-trigger-patch-merged:
185             name: 'docs'
186             branch: '{branch}'
187
188     prebuilders:
189         - wipe-org-opendaylight-repo
190         - jacoco-nojava-workaround
191         - provide-maven-settings:
192             global-settings-file: '{odl-global-settings}'
193             settings-file: '{docs-settings}'
194
195     maven:
196         maven-name: '{mvn33}'
197         root-pom: 'pom.xml'
198         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dmerge -Dstream={stream}'
199         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
200         settings: '{docs-settings}'
201         global-settings: '{odl-global-settings}'
202         post-step-run-condition: UNSTABLE
203
204     postbuilders:
205         - conditional-step:
206             condition-kind: file-exists
207             condition-filename: deploy-site.xml
208             condition-basedir: workspace
209
210             # The strategy here is intentional to run Maven site:deploy twice
211             # once using regular pom.xml to produce a staged-site which is
212             # then used by deploy-site.xml to push to Nexus. This is a
213             # workaround to Maven Site's default linking code which creates
214             # incorrect URLs for sites due to auto-detection assuming your
215             # project is configured in a certain way which ODL is not.
216             steps:
217             - maven-target:
218                 maven-version: '{mvn33}'
219                 pom: pom.xml
220                 goals: 'site:deploy -Dstream={stream}'
221                 java-opts:
222                     - '-Xmx2g'
223                 settings: '{docs-settings}'
224                 global-settings: '{odl-global-settings}'
225             - maven-target:
226                 maven-version: '{mvn33}'
227                 pom: deploy-site.xml
228                 goals: 'site:deploy -Dstream={stream}'
229                 java-opts:
230                     - '-Xmx2g'
231                 settings: '{docs-settings}'
232                 global-settings: '{odl-global-settings}'
233
234     reporters:
235         - findbugs
236
237     publishers:
238         - archive-artifacts:
239             artifacts: '**/target/surefire-reports/*-output.txt, '
240         - email-notification:
241             email-prefix: '[docs]'
242         - maven-deploy:
243             id: ''
244             unique-version: true
245             deploy-unstable: false
246         - jacoco-report
247
248 - job-template:
249     name: 'docs-periodic-{stream}'
250     disabled: false
251
252     # Job template for periodic builders
253     #
254     # The purpose of this job template is to setup a periodic
255     # builder.
256     #
257     # Required Variables:
258     #     stream:    release stream (eg. stable-lithium or beryllium)
259     #     branch:    git branch (eg. stable/lithium or master)
260
261     project-type: maven
262     node: dynamic_verify
263     jdk: '{jdk}'
264
265     logrotate:
266         daysToKeep: '14'
267         numToKeep: '10'
268         artifactDaysToKeep: '{build-artifact-days-to-keep}'
269         artifactNumToKeep: '{build-artifact-num-to-keep}'
270
271     parameters:
272         - project-parameter:
273             project: '{project}'
274
275     scm:
276         - git-scm:
277             credentials-id: '{ssh-credentials}'
278             refspec: ''
279             branch: '{branch}'
280
281     wrappers:
282         - build-timeout
283         - ssh-agent-credentials:
284             users:
285                 - '{ssh-credentials}'
286
287     triggers:
288         - timed: '@daily'
289
290     prebuilders:
291         - wipe-org-opendaylight-repo
292         - jacoco-nojava-workaround
293         - provide-maven-settings:
294             global-settings-file: '{odl-global-settings}'
295             settings-file: '{docs-settings}'
296
297     maven:
298         maven-name: '{mvn33}'
299         root-pom: 'pom.xml'
300         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
301         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
302         settings: '{docs-settings}'
303         global-settings: '{odl-global-settings}'
304
305     reporters:
306         - findbugs
307
308     publishers:
309         - email-notification:
310             email-prefix: '[docs]'
311         - jacoco-report
312
313 - job-template:
314     name: 'docs-distribution-{stream}'
315
316     # Required variables:
317     #     stream:    release stream (eg. stable-lithium or beryllium)
318     #     branch:    git branch (eg. stable/lithium or master)
319
320     project-type: maven
321     node: dynamic_merge
322     jdk: '{jdk}'
323
324     logrotate:
325         daysToKeep: '{build-days-to-keep}'
326         numToKeep: '{build-num-to-keep}'
327         artifactDaysToKeep: '{build-artifact-days-to-keep}'
328         artifactNumToKeep: '{build-artifact-num-to-keep}'
329
330     parameters:
331         - project-parameter:
332             project: 'integration/distribution'
333
334     scm:
335         - git-scm:
336             credentials-id: '{ssh-credentials}'
337             refspec: ''
338             branch: '{branch}'
339
340     wrappers:
341         - build-timeout
342         - ssh-agent-credentials:
343             users:
344                 - '{ssh-credentials}'
345
346     triggers:
347         - reverse:
348             jobs: '{project}-merge-{stream}'
349             result: 'success'
350
351     prebuilders:
352         - wipe-org-opendaylight-repo
353         - provide-maven-settings:
354             global-settings-file: '{odl-global-settings}'
355             settings-file: '{docs-settings}'
356
357     maven:
358         maven-name: '{mvn33}'
359         root-pom: 'pom.xml'
360         goals: 'clean install -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
361         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
362         settings: '{integration-settings}'
363         global-settings: '{odl-global-settings}'
364
365     publishers:
366         - email-notification:
367             email-prefix: '[{project}]'
368         - maven-deploy:
369             id: ''
370             unique-version: true
371             deploy-unstable: false
372
373 # Template: integration-patch-distribution-{stream}
374 # Goal: Build a patch and make sure the distribution can deploy with this change
375 # Operation: This job template builds a patch, creates a distribution containing
376 #            the patch, and triggers the distribution deploy test
377
378 - job-template:
379     name: 'docs-distribution-check-{stream}'
380     disabled: '{obj:disable_distribution_check}'
381
382     project-type: maven
383     node: dynamic_verify
384     concurrent: true
385     jdk: '{jdk}'
386
387     logrotate:
388         daysToKeep: '14'
389         numToKeep: '10'
390         artifactDaysToKeep: '{build-artifact-days-to-keep}'
391         artifactNumToKeep: '{build-artifact-num-to-keep}'
392
393     parameters:
394         - gerrit-project-parameter:
395             project: '{project}'
396         - gerrit-refspec-parameter:
397             refspec: '{branch}'
398         - project-parameter:
399             project: '{project}'
400         - integration-distribution-git-url
401
402     scm:
403         - integration-gerrit-scm:
404             credentials-id: '{ssh-credentials}'
405             basedir: '$GERRIT_PROJECT'
406             refspec: '$GERRIT_REFSPEC'
407             branch: '{branch}'
408         - integration-distribution-scm:
409             credentials-id: '{ssh-credentials}'
410             branch: '{branch}'
411
412     wrappers:
413         - build-timeout
414         - ssh-agent-credentials:
415             users:
416                 - '{ssh-credentials}'
417
418     triggers:
419         - gerrit:
420             server-name: 'OpenDaylight'
421             trigger-on:
422                 - patchset-created-event:
423                     exclude-drafts: 'true'
424                     exclude-trivial-rebase: 'false'
425                     exclude-no-code-change: 'true'
426                 - draft-published-event
427                 - comment-added-contains-event:
428                     comment-contains-value: 'test-distribution'
429             projects:
430               - project-compare-type: 'ANT'
431                 project-pattern: '{name}'
432                 branches:
433                   - branch-compare-type: 'ANT'
434                     branch-pattern: '**/{branch}'
435             skip-vote:
436                 successful: false
437                 failed: false
438                 unstable: false
439                 notbuilt: false
440
441     prebuilders:
442         - wipe-org-opendaylight-repo
443         - maven-target:
444             maven-version: '{mvn33}'
445             pom: '$GERRIT_PROJECT/pom.xml'
446             goals: 'clean install -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -DgenerateReports=false -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}'
447             java-opts:
448                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
449             settings: '{docs-settings}'
450             global-settings: '{odl-global-settings}'
451
452     maven:
453         maven-name: '{mvn33}'
454         root-pom: 'distribution/pom.xml'
455         goals: 'clean install -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
456         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
457         settings: '{docs-settings}'
458         global-settings: '{odl-global-settings}'
459         ignore-upstream-changes: true
460         post-step-run-condition: 'SUCCESS'
461
462     postbuilders:
463         - integration-distribution-check
464
465     publishers:
466         - archive:
467             artifacts: 'karaf.log'
468         - archive:
469             artifacts: 'karaf_console.log'
470         - email-notification:
471             email-prefix: '[docs]'
472
473 - job-template:
474     name: 'docs-integration-{stream}'
475     disabled: false
476
477     # Job template for ODL integration verify jobs
478     #
479     # This is similar to a normal verify job, but it runs
480     # when a project that's a dependency of your project
481     # is successfully built.
482     #
483     # Required Variables:
484     #     stream:    release stream (eg. stable-lithium or beryllium)
485     #     branch:    git branch (eg. stable/lithium or master)
486
487     project-type: maven
488     node: dynamic_merge
489     jdk: '{jdk}'
490
491     logrotate:
492         daysToKeep: '{build-days-to-keep}'
493         numToKeep: '{build-num-to-keep}'
494         artifactDaysToKeep: '{build-artifact-days-to-keep}'
495         artifactNumToKeep: '{build-artifact-num-to-keep}'
496
497     parameters:
498         - project-parameter:
499             project: '{project}'
500
501     scm:
502         - git-scm:
503             credentials-id: '{ssh-credentials}'
504             refspec: ''
505             branch: '{branch}'
506
507     wrappers:
508         - build-timeout
509         - ssh-agent-credentials:
510             users:
511                 - '{ssh-credentials}'
512
513     triggers:
514         - reverse:
515             jobs: 'odlparent-merge-{stream}'
516             result: 'success'
517
518     prebuilders:
519         - wipe-org-opendaylight-repo
520         - jacoco-nojava-workaround
521         - provide-maven-settings:
522             global-settings-file: '{odl-global-settings}'
523             settings-file: '{docs-settings}'
524
525     maven:
526         maven-name: '{mvn33}'
527         root-pom: 'pom.xml'
528         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
529         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
530         settings: '{docs-settings}'
531         global-settings: '{odl-global-settings}'
532
533     reporters:
534         - findbugs
535
536     publishers:
537         - email-notification:
538             email-prefix: '[docs] [odlparent]'
539         - jacoco-report
540
541 - job-template:
542     name: 'docs-sonar'
543     disabled: false
544
545     project-type: maven
546     node: dynamic_verify
547     jdk: 'openjdk8'
548
549     logrotate:
550         daysToKeep: '7'
551         numToKeep: '10'
552         artifactDaysToKeep: '1'
553         artifactNumToKeep: '1'
554
555     parameters:
556         - project-parameter:
557             project: '{project}'
558
559     scm:
560         - git-scm:
561             credentials-id: '{ssh-credentials}'
562             refspec: ''
563             branch: 'master'
564
565     wrappers:
566         - build-timeout
567         - ssh-agent-credentials:
568             users:
569                 - '{ssh-credentials}'
570
571     triggers:
572         - timed: '@weekly'
573         - gerrit-trigger-patch-sonar:
574             name: 'docs'
575
576     prebuilders:
577         - wipe-org-opendaylight-repo
578         - jacoco-nojava-workaround
579         - provide-maven-settings:
580             global-settings-file: '{odl-global-settings}'
581             settings-file: '{docs-settings}'
582
583     maven:
584         maven-name: '{mvn33}'
585         root-pom: 'pom.xml'
586         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dsonar'
587         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
588         settings: '{docs-settings}'
589         global-settings: '{odl-global-settings}'
590
591     reporters:
592         - findbugs
593
594     publishers:
595         - sonar:
596             language: 'java'
597             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
598         - email-notification:
599             email-prefix: '[docs]'
600         - jacoco-report
601
602 - job-template:
603     name: 'docs-clm-{stream}'
604     disabled: false
605
606     project-type: maven
607     node: dynamic_verify
608     jdk: '{jdk}'
609
610     logrotate:
611         daysToKeep: '{build-days-to-keep}'
612         numToKeep: '{build-num-to-keep}'
613         artifactDaysToKeep: '{build-artifact-days-to-keep}'
614         artifactNumToKeep: '{build-artifact-num-to-keep}'
615
616     parameters:
617         - project-parameter:
618             project: '{project}'
619
620     scm:
621         - git-scm:
622             credentials-id: '{ssh-credentials}'
623             refspec: ''
624             branch: '{branch}'
625
626     wrappers:
627         - build-timeout
628         - ssh-agent-credentials:
629             users:
630                 - '{ssh-credentials}'
631
632     triggers:
633         - timed: '@weekly'
634
635     prebuilders:
636         - wipe-org-opendaylight-repo
637         - provide-maven-settings:
638             global-settings-file: '{odl-global-settings}'
639             settings-file: '{docs-settings}'
640
641     maven:
642         maven-name: '{mvn33}'
643         root-pom: 'pom.xml'
644         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
645         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
646         settings: '{docs-settings}'
647         global-settings: '{odl-global-settings}'
648
649     postbuilders:
650         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
651         - check-clm:
652             application-name: docs
653
654     publishers:
655         - email-notification:
656             email-prefix: '[docs]'
657
658 - job-template:
659     name: 'docs-validate-autorelease-{stream}'
660     disabled: '{obj:disable_autorelease}'
661
662     project-type: maven
663     node: dynamic_verify
664     concurrent: true
665     jdk: '{jdk}'
666
667     logrotate:
668         daysToKeep: '{build-days-to-keep}'
669         numToKeep: '{build-num-to-keep}'
670         artifactDaysToKeep: '{build-artifact-days-to-keep}'
671         artifactNumToKeep: '{build-artifact-num-to-keep}'
672
673     parameters:
674         - project-parameter:
675             project: '{project}'
676         - gerrit-parameter:
677             branch: '{branch}'
678         - autorelease-release-tag:
679             release-tag: 'validate'
680         - autorelease-release-branch:
681             release-branch: '{branch}'
682         - autorelease-release-datestamp:
683             datestamp: true
684
685     scm:
686         - git:
687             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
688             refspec: ''
689             branches:
690                 - 'origin/{branch}'
691             skip-tag: true
692             submodule:
693                 recursive: true
694
695     wrappers:
696         - autorelease-build-timeout
697         - ssh-agent-credentials:
698             users:
699                 - '{ssh-credentials}'
700
701     triggers:
702         - gerrit:
703             server-name: 'OpenDaylight'
704             trigger-on:
705                 - patchset-created-event:
706                     exclude-drafts: 'false'
707                     exclude-trivial-rebase: 'false'
708                     exclude-no-code-change: 'false'
709                 - draft-published-event
710                 - comment-added-contains-event:
711                     comment-contains-value: 'recheck'
712                 - comment-added-contains-event:
713                     comment-contains-value: 'reverify'
714                 - comment-added-contains-event:
715                     comment-contains-value: 'revalidate'
716             projects:
717               - project-compare-type: 'ANT'
718                 project-pattern: 'docs'
719                 branches:
720                   - branch-compare-type: 'ANT'
721                     branch-pattern: '**/{branch}'
722                 file-paths:
723                     - compare-type: ANT
724                       pattern: '**/*.xml'
725
726     prebuilders:
727         - wipe-org-opendaylight-repo
728         - jacoco-nojava-workaround
729         - autorelease-checkout-gerrit-patch
730         - autorelease-generate-taglist
731         - autorelease-generate-release-patches
732         - maven-target:
733             maven-version: '{mvn33}'
734             pom: validate-pom.xml
735             goals: 'clean install -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
736             java-opts:
737             - '-Xmx8g'
738             settings: '{autorelease-settings}'
739             global-settings: '{odl-global-settings}'
740
741     maven:
742         maven-name: '{mvn33}'
743         root-pom: 'pom.xml'
744         goals: 'clean validate -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
745         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
746         settings: '{autorelease-settings}'
747         global-settings: '{odl-global-settings}'
748         automatic-archiving: false
749         post-step-run-condition: UNSTABLE
750
751     postbuilders:
752         - shell: "./scripts/list-project-dependencies.sh"
753         - autorelease-sys-stats
754
755     publishers:
756         - archive-artifacts:
757             artifacts: '*.log'
758         - email-notification:
759             email-prefix: '[autorelease] [docs]'
760