Have Jenkins provide .packagecloud file for merge jobs
[ci-management.git] / jjb / vpp / vpp.yaml
1 - project:
2     name: vpp
3     jobs:
4         - 'vpp-verify-{stream}-{os}'
5         - 'vpp-merge-{stream}-{os}'
6         - 'vpp-verify-image-{stream}-{os}'
7         - 'vpp-docs-merge-{stream}'
8         - 'vpp-docs-verify-{stream}'
9         - 'vpp-make-test-docs-merge-{stream}'
10         - 'vpp-make-test-docs-verify-{stream}'
11         - 'vpp-test-packagecloud-{stream}-{os}'
12
13     project: 'vpp'
14     os:
15         - ubuntu1404:
16             repo-os-part: 'ubuntu.trusty.main'
17         - ubuntu1604:
18             repo-os-part: 'ubuntu.xenial.main'
19         - centos7:
20             repo-os-part: 'centos7'
21     stream:
22         - master:
23             branch: 'master'
24             repo-stream-part: 'master'
25         - test:
26             branch: 'stable/test'
27             repo-stream-part: 'stable.test'
28         - '1606':
29             branch: 'stable/1606'
30             repo-stream-part: 'stable.1606'
31         - '1609':
32             branch: 'stable/1609'
33             repo-stream-part: 'stable.1609'
34         - '1701':
35             branch: 'stable/1701'
36             repo-stream-part: 'stable.1701'
37         - '1704':
38             branch: 'stable/1704'
39             repo-stream-part: 'stable.1704'
40     type:
41         - short
42         - long
43
44 - project:
45     name: vpp-misc
46     jobs:
47         - 'vpp-csit-verify-virl-{stream}'
48         - 'vpp-csit-verify-hw-perf-{stream}-{type}'
49     project: 'vpp'
50     stream:
51         - master:
52             branch: 'master'
53             repo-stream-part: 'master'
54         - test:
55             branch: 'stable/test'
56             repo-stream-part: 'stable.test'
57         - '1606':
58             branch: 'stable/1606'
59             repo-stream-part: 'stable.1606'
60         - '1609':
61             branch: 'stable/1609'
62             repo-stream-part: 'stable.1609'
63         - '1701':
64             branch: 'stable/1701'
65             repo-stream-part: 'stable.1609'
66         - '1704':
67             branch: 'stable/1704'
68             repo-stream-part: 'stable.1704'
69     os: ubuntu1604
70     type:
71         - all
72         - short
73         - long
74
75 - job-template:
76     name: 'vpp-verify-{stream}-{os}'
77
78     project-type: freestyle
79     node: '{os}-basebuild-4c-4g'
80     concurrent: true
81
82     logrotate:
83         daysToKeep: '{build-days-to-keep}'
84         numToKeep: '{build-num-to-keep}'
85         artifactDaysToKeep: '{build-artifact-days-to-keep}'
86         artifactNumToKeep: '{build-artifact-num-to-keep}'
87
88     parameters:
89         - project-parameter:
90             project: '{project}'
91         - gerrit-parameter:
92             branch: '{branch}'
93         - os-parameter:
94             os: '{os}'
95         - repo-name-parameter:
96             repo-name: '{repo-stream-part}.{repo-os-part}'
97
98     scm:
99         - gerrit-trigger-scm:
100             credentials-id: 'jenkins-gerrit-credentials'
101             refspec: '$GERRIT_REFSPEC'
102             choosing-strategy: 'gerrit'
103
104     wrappers:
105         - fdio-infra-wrappers:
106             build-timeout: '{build-timeout}'
107
108     triggers:
109         - gerrit-trigger-patch-submitted:
110             name: '{project}'
111             branch: '{branch}'
112
113     builders:
114         - shell:
115             !include-raw-escape: include-raw-vpp-checkstyle.sh
116         - shell:
117             !include-raw-escape: include-raw-vpp-test-checkstyle.sh
118         - shell:
119             !include-raw-escape:
120                 - ../scripts/setup_vpp_dpdk_dev_env.sh
121                 - include-raw-vpp-build.sh
122     publishers:
123         - archive:
124             artifacts: 'build-root/*.rpm,build-root/*.deb,dpdk/*.rpm,dpdk/*.deb'
125             allow-empty: 'true'
126             fingerprint: false
127             only-if-success: true
128             default-excludes: false
129         - fdio-infra-shiplogs:
130             maven-version: 'mvn33-new'
131
132 - job-template:
133     name: 'vpp-verify-image-{stream}-{os}'
134
135     project-type: freestyle
136     node: '{os}-basebuild-4c-4g'
137     concurrent: true
138
139     logrotate:
140         daysToKeep: '{build-days-to-keep}'
141         numToKeep: '{build-num-to-keep}'
142         artifactDaysToKeep: '{build-artifact-days-to-keep}'
143         artifactNumToKeep: '{build-artifact-num-to-keep}'
144
145     parameters:
146         - project-parameter:
147             project: '{project}'
148         - gerrit-parameter:
149             branch: '{branch}'
150         - os-parameter:
151             os: '{os}'
152         - repo-name-parameter:
153             repo-name: '{repo-stream-part}.{repo-os-part}'
154
155     scm:
156         - gerrit-trigger-scm:
157             credentials-id: 'jenkins-gerrit-credentials'
158             refspec: '$GERRIT_REFSPEC'
159             choosing-strategy: 'gerrit'
160
161     wrappers:
162         - fdio-infra-wrappers:
163             build-timeout: '{build-timeout}'
164
165     triggers:
166         - gerrit:
167             server-name: 'Primary'
168             trigger-on:
169                 - comment-added-contains-event:
170                     comment-contains-value: 'verify-images'
171             projects:
172               - project-compare-type: 'ANT'
173                 project-pattern: '{project}'
174                 branches:
175                   - branch-compare-type: 'ANT'
176                     branch-pattern: '**/{branch}'
177             skip-vote:
178                 successful: true
179                 failed: true
180                 unstable: true
181                 notbuilt: true
182
183     builders:
184         - shell:
185             !include-raw-escape: include-raw-vpp-checkstyle.sh
186         - shell:
187             !include-raw-escape:
188                 - ../scripts/setup_vpp_dpdk_dev_env.sh
189                 - include-raw-vpp-build.sh
190
191     publishers:
192       - fdio-infra-shiplogs:
193           maven-version: 'mvn33-new'
194
195 - job-template:
196     name: 'vpp-merge-{stream}-{os}'
197
198     project-type: freestyle
199     node: '{os}-basebuild-4c-4g'
200
201     logrotate:
202         daysToKeep: '{build-days-to-keep}'
203         numToKeep: '{build-num-to-keep}'
204         artifactDaysToKeep: '{build-artifact-days-to-keep}'
205         artifactNumToKeep: '{build-artifact-num-to-keep}'
206
207     parameters:
208         - project-parameter:
209             project: '{project}'
210         - gerrit-parameter:
211             branch: '{branch}'
212         - os-parameter:
213             os: '{os}'
214         - maven-project-parameter:
215             maven: 'mvn33-new'
216         - maven-exec:
217             maven-version: 'mvn33-new'
218         - stream-parameter:
219             stream: '{stream}'
220         - repo-name-parameter:
221             repo-name: '{repo-stream-part}.{repo-os-part}'
222
223     scm:
224         - gerrit-trigger-scm:
225             credentials-id: 'jenkins-gerrit-credentials'
226             refspec: ''
227             choosing-strategy: 'default'
228
229     wrappers:
230         - fdio-infra-wrappers:
231             build-timeout: '{build-timeout}'
232
233     triggers:
234         - gerrit-trigger-patch-merged:
235             name: '{project}'
236             branch: '{branch}'
237
238     builders:
239         - config-file-provider:
240             files:
241               - file-id: '.packagecloud'
242                 target: '/home/jenkins'
243         - maven-target:
244             maven-version: 'mvn33-new'
245             goals: '--version'
246             settings: 'vpp-settings'
247             settings-type: cfp
248             global-settings: 'global-settings'
249             global-settings-type: cfp
250         - shell:
251             !include-raw-escape: include-raw-vpp-checkstyle.sh
252         - shell:
253             !include-raw-escape:
254                 - ../scripts/setup_vpp_dpdk_dev_env.sh
255                 - include-raw-vpp-build.sh
256         - provide-maven-settings:
257             settings-file: 'vpp-settings'
258             global-settings-file: 'global-settings'
259         - shell:
260             !include-raw-escape:
261                 - ../scripts/maven_push_functions.sh
262                 - include-raw-vpp-maven-push.sh
263         - shell:
264             !include-raw-escape:
265                 - ../scripts/packagecloud_push.sh
266
267     publishers:
268         - archive:
269             artifacts: 'build-root/*.rpm,build-root/*.deb,dpdk/*.rpm,dpdk/*.deb'
270             allow-empty: 'true'
271             fingerprint: false
272             only-if-success: true
273             default-excludes: false
274         - fdio-infra-shiplogs:
275             maven-version: 'mvn33-new'
276
277 - job-template:
278     name: 'vpp-csit-verify-virl-{stream}'
279
280     project-type: freestyle
281     node: '{os}-basebuild-4c-4g'
282     concurrent: true
283
284     logrotate:
285         daysToKeep: '{build-days-to-keep}'
286         numToKeep: '{build-num-to-keep}'
287         artifactDaysToKeep: '{build-artifact-days-to-keep}'
288         artifactNumToKeep: '{build-artifact-num-to-keep}'
289
290     parameters:
291         - project-parameter:
292             project: '{project}'
293         - gerrit-parameter:
294             branch: '{branch}'
295         - os-parameter:
296             os: '{os}'
297         - repo-name-parameter:
298             repo-name: '{repo-stream-part}.ubuntu.xenial.main'
299         - is-csit-vpp-job-parameter:
300             is-csit-vpp-job: 'True'
301
302     scm:
303         - gerrit-trigger-scm:
304             credentials-id: 'jenkins-gerrit-credentials'
305             refspec: '$GERRIT_REFSPEC'
306             choosing-strategy: 'gerrit'
307
308     wrappers:
309         - fdio-infra-wrappers:
310             build-timeout: '{build-timeout}'
311
312     triggers:
313         - gerrit-trigger-patch-submitted:
314             name: '{project}'
315             branch: '{branch}'
316
317     builders:
318         - shell:
319             !include-raw-escape: include-raw-vpp-checkstyle.sh
320         - shell:
321             !include-raw-escape:
322                 - ../scripts/setup_vpp_dpdk_dev_env.sh
323                 - include-raw-vpp-build.sh
324         - shell:
325             !include-raw-escape: include-raw-vpp-csit-functional.sh
326
327     publishers:
328         - archive-artifacts:
329             artifacts: 'csit/report.html, csit/log.html, csit/output.xml'
330             latest-only: false
331
332         - robot-report:
333             output-path: 'csit'
334
335         - fdio-infra-shiplogs:
336             maven-version: 'mvn33-new'
337
338 - job-template:
339     name: 'vpp-csit-verify-hw-perf-{stream}-{type}'
340
341     project-type: freestyle
342     node: '{os}-basebuild-4c-4g'
343     concurrent: false
344
345     logrotate:
346         daysToKeep: '{build-days-to-keep}'
347         numToKeep: '{build-num-to-keep}'
348         artifactDaysToKeep: '{build-artifact-days-to-keep}'
349         artifactNumToKeep: '{build-artifact-num-to-keep}'
350
351     parameters:
352         - project-parameter:
353             project: '{project}'
354         - gerrit-parameter:
355             branch: '{branch}'
356         - os-parameter:
357             os: '{os}'
358         - repo-name-parameter:
359             repo-name: '{repo-stream-part}.ubuntu.xenial.main'
360         - type-parameter:
361             type: '{type}'
362         - is-csit-vpp-job-parameter:
363             is-csit-vpp-job: 'True'
364
365     scm:
366         - gerrit-trigger-scm:
367             credentials-id: 'jenkins-gerrit-credentials'
368             refspec: '$GERRIT_REFSPEC'
369             choosing-strategy: 'gerrit'
370
371     wrappers:
372         - fdio-infra-wrappers-non-activity-timeout:
373             build-timeout: 30
374
375     triggers:
376         - gerrit-trigger-manually-triggered:
377             comment-trigger-value: 'verify-perf-{type}'
378             name: '{project}'
379             branch: '{branch}'
380
381     builders:
382         - shell:
383             !include-raw-escape:
384                 - ../scripts/setup_vpp_dpdk_dev_env.sh
385                 - include-raw-vpp-build.sh
386         - shell:
387             !include-raw-escape: include-raw-vpp-csit-verify-perf.sh
388
389     publishers:
390         - archive-artifacts:
391             artifacts: 'csit/report.html, csit/log.html, csit/output.xml'
392             latest-only: false
393
394         - robot-report:
395             output-path: 'csit'
396
397         - fdio-infra-shiplogs:
398             maven-version: 'mvn33-new'
399
400 - parameter:
401     name: type-parameter
402
403     parameters:
404         - string:
405             name: TYPE
406             default: '{type}'
407             description: "TYPE parameter if not given by trigger"
408
409 - job-template:
410     name: 'vpp-docs-verify-{stream}'
411
412     project-type: freestyle
413     node: ubuntu1604-basebuild-4c-4g
414     concurrent: true
415
416     logrotate:
417         daysToKeep: '{build-days-to-keep}'
418         numToKeep: '{build-num-to-keep}'
419         artifactDaysToKeep: '{build-artifact-days-to-keep}'
420         artifactNumToKeep: '{build-artifact-num-to-keep}'
421
422     parameters:
423         - project-parameter:
424             project: '{project}'
425         - gerrit-parameter:
426             branch: '{branch}'
427         - os-parameter:
428             os: 'ubuntu1604'
429         - maven-exec:
430             maven-version: 'mvn33-new'
431
432     scm:
433         - gerrit-trigger-scm:
434             credentials-id: 'jenkins-gerrit-credentials'
435             refspec: '$GERRIT_REFSPEC'
436             choosing-strategy: 'gerrit'
437
438     wrappers:
439         - fdio-infra-wrappers:
440             build-timeout: '{build-timeout}'
441
442     triggers:
443         - gerrit-trigger-patch-submitted:
444             name: '{project}'
445             branch: '{branch}'
446
447     builders:
448         - maven-target:
449             maven-version: 'mvn33-new'
450             goals: '--version'
451             settings: 'vpp-settings'
452             settings-type: cfp
453             global-settings: 'global-settings'
454             global-settings-type: cfp
455         - provide-maven-settings:
456             settings-file: 'vpp-settings'
457             global-settings-file: 'global-settings'
458         - shell:
459             !include-raw-escape: include-raw-vpp-docs.sh
460     publishers:
461         - archive:
462             artifacts: 'build-root/docs/html/*'
463             allow-empty: 'true'
464             fingerprint: false
465             only-if-success: true
466             default-excludes: false
467         - fdio-infra-shiplogs:
468             maven-version: 'mvn33-new'
469
470 - job-template:
471     name: 'vpp-docs-merge-{stream}'
472
473     project-type: freestyle
474     node: ubuntu1604-basebuild-4c-4g
475     concurrent: true
476
477     logrotate:
478         daysToKeep: '{build-days-to-keep}'
479         numToKeep: '{build-num-to-keep}'
480         artifactDaysToKeep: '{build-artifact-days-to-keep}'
481         artifactNumToKeep: '{build-artifact-num-to-keep}'
482
483     parameters:
484         - project-parameter:
485             project: '{project}'
486         - gerrit-parameter:
487             branch: '{branch}'
488         - os-parameter:
489             os: 'ubuntu1604'
490         - maven-exec:
491             maven-version: 'mvn33-new'
492
493     scm:
494         - gerrit-trigger-scm:
495             credentials-id: 'jenkins-gerrit-credentials'
496             refspec: ''
497             choosing-strategy: 'default'
498
499     wrappers:
500         - fdio-infra-wrappers:
501             build-timeout: '{build-timeout}'
502
503     triggers:
504         - reverse:
505             jobs: 'vpp-merge-{stream}-ubuntu1404'
506             result: 'success'
507         - gerrit:
508             server-name: 'Primary'
509             trigger-on:
510                 - comment-added-contains-event:
511                     comment-contains-value: 'run-docs'
512             projects:
513               - project-compare-type: 'ANT'
514                 project-pattern: '{project}'
515                 branches:
516                   - branch-compare-type: 'ANT'
517                     branch-pattern: '**/{branch}'
518             skip-vote:
519                 successful: true
520                 failed: true
521                 unstable: true
522                 notbuilt: true
523
524     builders:
525         - maven-target:
526             maven-version: 'mvn33-new'
527             goals: '--version'
528             settings: 'vpp-settings'
529             settings-type: cfp
530             global-settings: 'global-settings'
531             global-settings-type: cfp
532         - provide-maven-settings:
533             settings-file: 'vpp-settings'
534             global-settings-file: 'global-settings'
535         - shell:
536             !include-raw-escape: include-raw-vpp-docs.sh
537     publishers:
538         - archive:
539             artifacts: 'build-root/docs/html/*'
540             allow-empty: 'true'
541             fingerprint: false
542             only-if-success: true
543             default-excludes: false
544         - fdio-infra-shiplogs:
545             maven-version: 'mvn33-new'
546
547 - job-template:
548     name: 'vpp-make-test-docs-verify-{stream}'
549
550     project-type: freestyle
551     node: ubuntu1604-basebuild-4c-4g
552     concurrent: true
553
554     logrotate:
555         daysToKeep: '{build-days-to-keep}'
556         numToKeep: '{build-num-to-keep}'
557         artifactDaysToKeep: '{build-artifact-days-to-keep}'
558         artifactNumToKeep: '{build-artifact-num-to-keep}'
559
560     parameters:
561         - project-parameter:
562             project: '{project}'
563         - gerrit-parameter:
564             branch: '{branch}'
565         - os-parameter:
566             os: 'ubuntu1604'
567         - maven-exec:
568             maven-version: 'mvn33-new'
569
570     scm:
571         - gerrit-trigger-scm:
572             credentials-id: 'jenkins-gerrit-credentials'
573             refspec: '$GERRIT_REFSPEC'
574             choosing-strategy: 'gerrit'
575
576     wrappers:
577         - fdio-infra-wrappers:
578             build-timeout: '{build-timeout}'
579
580     triggers:
581         - gerrit-trigger-patch-submitted:
582             name: '{project}'
583             branch: '{branch}'
584
585     builders:
586         - maven-target:
587             maven-version: 'mvn33-new'
588             goals: '--version'
589             settings: 'vpp-settings'
590             settings-type: cfp
591             global-settings: 'global-settings'
592             global-settings-type: cfp
593         - provide-maven-settings:
594             settings-file: 'vpp-settings'
595             global-settings-file: 'global-settings'
596         - shell:
597             !include-raw-escape: include-raw-vpp-make-test-docs.sh
598     publishers:
599         - archive:
600             artifacts: 'build-root/test-doc/build/html/*'
601             allow-empty: 'true'
602             fingerprint: false
603             only-if-success: true
604             default-excludes: false
605         - fdio-infra-shiplogs:
606             maven-version: 'mvn33-new'
607
608 - job-template:
609     name: 'vpp-make-test-docs-merge-{stream}'
610
611     project-type: freestyle
612     node: ubuntu1604-basebuild-4c-4g
613     concurrent: true
614
615     logrotate:
616         daysToKeep: '{build-days-to-keep}'
617         numToKeep: '{build-num-to-keep}'
618         artifactDaysToKeep: '{build-artifact-days-to-keep}'
619         artifactNumToKeep: '{build-artifact-num-to-keep}'
620
621     parameters:
622         - project-parameter:
623             project: '{project}'
624         - gerrit-parameter:
625             branch: '{branch}'
626         - os-parameter:
627             os: 'ubuntu1604'
628         - maven-exec:
629             maven-version: 'mvn33-new'
630
631     scm:
632         - gerrit-trigger-scm:
633             credentials-id: 'jenkins-gerrit-credentials'
634             refspec: ''
635             choosing-strategy: 'default'
636
637     wrappers:
638         - fdio-infra-wrappers:
639             build-timeout: '{build-timeout}'
640
641     triggers:
642         - reverse:
643             jobs: 'vpp-merge-{stream}-ubuntu1404'
644             result: 'success'
645         - gerrit:
646             server-name: 'Primary'
647             trigger-on:
648                 - comment-added-contains-event:
649                     comment-contains-value: 'run-docs'
650             projects:
651               - project-compare-type: 'ANT'
652                 project-pattern: '{project}'
653                 branches:
654                   - branch-compare-type: 'ANT'
655                     branch-pattern: '**/{branch}'
656             skip-vote:
657                 successful: true
658                 failed: true
659                 unstable: true
660                 notbuilt: true
661
662     builders:
663         - maven-target:
664             maven-version: 'mvn33-new'
665             goals: '--version'
666             settings: 'vpp-settings'
667             settings-type: cfp
668             global-settings: 'global-settings'
669             global-settings-type: cfp
670         - provide-maven-settings:
671             settings-file: 'vpp-settings'
672             global-settings-file: 'global-settings'
673         - shell:
674             !include-raw-escape: include-raw-vpp-make-test-docs.sh
675     publishers:
676         - archive:
677             artifacts: 'build-root/test-doc/build/html/*'
678             allow-empty: 'true'
679             fingerprint: false
680             only-if-success: true
681             default-excludes: false
682         - fdio-infra-shiplogs:
683             maven-version: 'mvn33-new'
684
685 - job-template:
686     name: 'vpp-test-packagecloud-{stream}-{os}'
687
688     project-type: freestyle
689     node: '{os}-basebuild-4c-4g'
690     concurrent: true
691
692     logrotate:
693         daysToKeep: '{build-days-to-keep}'
694         numToKeep: '{build-num-to-keep}'
695         artifactDaysToKeep: '{build-artifact-days-to-keep}'
696         artifactNumToKeep: '{build-artifact-num-to-keep}'
697
698     parameters:
699         - project-parameter:
700             project: '{project}'
701         - gerrit-parameter:
702             branch: '{branch}'
703         - os-parameter:
704             os: '{os}'
705         - stream-parameter:
706             stream: '{stream}'
707         - repo-name-parameter:
708             repo-name: '{repo-stream-part}.{repo-os-part}'
709
710     scm:
711         - gerrit-trigger-scm:
712             credentials-id: 'jenkins-gerrit-credentials'
713             refspec: '$GERRIT_REFSPEC'
714             choosing-strategy: 'gerrit'
715
716     wrappers:
717         - fdio-infra-wrappers:
718             build-timeout: '{build-timeout}'
719
720     triggers:
721         - gerrit-trigger-manually-triggered:
722             name: '{project}'
723             branch: '{branch}'
724             comment-trigger-value: 'test-pkgcloud'
725
726
727     builders:
728         - config-file-provider:
729             files:
730               - file-id: '.packagecloud'
731                 target: '/home/jenkins'
732                 #variable: 'SETTINGS_FILE'
733         - shell:
734             !include-raw-escape: include-raw-vpp-checkstyle.sh
735         - shell:
736             !include-raw-escape: include-raw-vpp-test-checkstyle.sh
737         - shell:
738             !include-raw-escape:
739                 - ../scripts/setup_vpp_dpdk_dev_env.sh
740                 - include-raw-vpp-build.sh
741         - shell:
742             !include-raw-escape:
743                 - ../scripts/packagecloud_push.sh
744
745     publishers:
746         - archive:
747             artifacts: 'build-root/*.rpm,build-root/*.deb,dpdk/*.rpm,dpdk/*.deb'
748             allow-empty: 'true'
749             fingerprint: false
750             only-if-success: true
751             default-excludes: false
752         - fdio-infra-shiplogs:
753             maven-version: 'mvn33-new'