b2e1a466945c6007901db9a1054d6cd322a66ff1
[ci-management.git] / jjb / vpp / vpp.yaml
1 ---
2 - project:
3     name: vpp
4     jobs:
5       - 'vpp-verify-{stream}-{os}'
6       - 'vpp-merge-{stream}-{os}'
7
8     project: 'vpp'
9     os:
10       - ubuntu1804:
11           repo-os-part: 'ubuntu.bionic.main'
12       - centos7:
13           repo-os-part: 'centos7'
14
15     stream:
16       - master:
17           branch: 'master'
18           repo-stream-part: 'master'
19       - '1904':
20           branch: 'stable/1904'
21           repo-stream-part: 'stable.1904'
22       - '1908':
23           branch: 'stable/1908'
24           repo-stream-part: 'stable.1908'
25       - '2001':
26           branch: 'stable/2001'
27           repo-stream-part: 'stable.2001'
28 - project:
29     name: vpp-beta
30     jobs:
31       - 'vpp-beta-verify-{stream}-{os}'
32       - 'vpp-beta-merge-{stream}-{os}'
33
34     project: 'vpp'
35     os:
36       - ubuntu2004:
37           repo-os-part: 'ubuntu.focal.main'
38       - centos8:
39           repo-os-part: 'centos8'
40
41     stream:
42       - master:
43           branch: 'master'
44           repo-stream-part: 'master'
45
46 - project:
47     name: vpp-clang
48     jobs:
49       - 'vpp-verify-{stream}-clang'
50       - 'vpp-coverity-{stream}'
51
52     project: 'vpp'
53     os:
54       - ubuntu1804:
55           repo-os-part: 'ubuntu.bionic.main'
56       - centos7:
57           repo-os-part: 'centos7'
58       - opensuse:
59           repo-os-part: 'opensuse'
60
61     stream:
62       - master:
63           branch: 'master'
64           repo-stream-part: 'master'
65
66 - project:
67     name: vpp-misc
68     jobs:
69       - 'vpp-checkstyle-verify-{stream}'
70     project: 'vpp'
71     stream:
72       - master:
73           branch: 'master'
74           repo-stream-part: 'master'
75       - '1901':
76           branch: 'stable/1901'
77           repo-stream-part: 'stable.1901'
78       - '1904':
79           branch: 'stable/1904'
80           repo-stream-part: 'stable.1904'
81       - '1908':
82           branch: 'stable/1908'
83           repo-stream-part: 'stable.1908'
84       - '2001':
85           branch: 'stable/2001'
86           repo-stream-part: 'stable.2001'
87     os: ubuntu1804
88
89 - project:
90     name: vpp-perpatch
91     jobs:
92       - 'vpp-csit-verify-device-{stream}-{device-node-arch}'
93       - 'vpp-csit-verify-perf-{stream}-{node-arch}'
94     project: 'vpp'
95     os: ubuntu1804
96     device-executor: 'vpp-csit-device'
97     executor: '{os}-us'
98     skip-vote: 'true'
99     trigger: 'gerrit-trigger-vpp-csit-devicetest-full'
100     stream:
101       - master:
102           branch: 'master'
103           repo-stream-part: 'master'
104       - '1904':
105           branch: 'stable/1904'
106           repo-stream-part: 'stable.1904'
107       - '1908':
108           branch: 'stable/1908'
109           repo-stream-part: 'stable.1908'
110       - '2001':
111           branch: 'stable/2001'
112           repo-stream-part: 'stable.2001'
113     device-node-arch:
114       - 1n-skx
115       - 1n-tx2:
116           device-executor: 'vpp-csit-arm-ubuntu18'
117           trigger: 'gerrit-trigger-vpp-csit-devicetest-manual'
118     node-arch:
119       - 2n-clx
120       - 2n-skx
121       - 3n-skx
122       - 3n-hsw
123       - 2n-dnv
124       - 3n-dnv
125       - 3n-tsh:
126           executor: 'ubuntu1804arm-s'
127     exclude:
128       - stream: '1904'
129         os: 'ubuntu1804'
130         device-node-arch: '1n-tx2'
131
132 - project:
133     name: vpp-older-only
134     jobs:
135       - 'vpp-historic-verify-{stream}-{os}'
136       - 'vpp-historic-merge-{stream}-{os}'
137     project: 'vpp'
138     stream:
139       - '1901':
140           branch: 'stable/1901'
141           repo-stream-part: 'stable.1901'
142       - '1904':
143           branch: 'stable/1904'
144           repo-stream-part: 'stable.1904'
145       - '1908':
146           branch: 'stable/1908'
147           repo-stream-part: 'stable.1908'
148       - '2001':
149           branch: 'stable/2001'
150           repo-stream-part: 'stable.2001'
151     os:
152       - ubuntu1604:
153           repo-os-part: 'ubuntu.xenial.main'
154
155 - project:
156     name: vpp-arm
157     jobs:
158       - 'vpp-arm-verify-{stream}-{os}'
159       - 'vpp-arm-merge-{stream}-{os}'
160     project: 'vpp'
161     stream:
162       - master:
163           branch: 'master'
164           repo-stream-part: 'master'
165       - '1901':
166           branch: 'stable/1901'
167           repo-stream-part: 'stable.1901'
168       - '1904':
169           branch: 'stable/1904'
170           repo-stream-part: 'stable.1904'
171       - '1908':
172           branch: 'stable/1908'
173           repo-stream-part: 'stable.1908'
174       - '2001':
175           branch: 'stable/2001'
176           repo-stream-part: 'stable.2001'
177     os:
178       - ubuntu1804:
179           repo-os-part: 'ubuntu-arm.bionic.main'
180
181 # TODO: Merge with (e.g.) vpp-perpatch or similar,
182 # when number of stable branches supported matches.
183 - project:
184     name: vpp-api-crc
185     jobs:
186       - 'vpp-csit-verify-api-crc-{stream}'
187     project: 'vpp'
188     executor: 'vpp-csit-device'
189     skip-vote: 'false'
190     stream:
191       # Only master and LTS branches.
192       - '1908':
193           branch: 'stable/1908'
194           repo-stream-part: 'stable.1908'
195       - master:
196           branch: 'master'
197     os: ubuntu1804
198
199 - project:
200     name: vpp-info
201     project-name: vpp
202     jobs:
203       - gerrit-info-yaml-verify
204     build-node: centos7-builder-2c-2g
205     project: vpp
206     branch: master
207
208 - project:
209     name: vpp-view
210     views:
211       - project-view
212     project-name: vpp
213
214 - job-template:
215     name: 'vpp-historic-verify-{stream}-{os}'
216
217     project-type: freestyle
218     node: '{os}-us'
219     concurrent: true
220     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
221
222     triggers:
223       - gerrit-trigger-checkstyle:
224           name: '{project}'
225           branch: '{branch}'
226
227     build-discarder:
228       daysToKeep: '{build-days-to-keep}'
229       numToKeep: 100
230       artifactDaysToKeep: '{build-artifact-days-to-keep}'
231       artifactNumToKeep: '{build-artifact-num-to-keep}'
232
233     parameters:
234       - project-parameter:
235           project: '{project}'
236       - gerrit-parameter:
237           branch: '{branch}'
238       - os-parameter:
239           os: '{os}'
240       - repo-name-parameter:
241           repo-name: '{repo-stream-part}.{repo-os-part}'
242       - stream-parameter:
243           stream: '{stream}'
244       - string:
245           name: ARCHIVE_ARTIFACTS
246           default: '{archive-artifacts}'
247           description: Artifacts to archive to the logs server.
248
249     scm:
250       - gerrit-trigger-scm:
251           credentials-id: 'jenkins-gerrit-credentials'
252           refspec: '$GERRIT_REFSPEC'
253           choosing-strategy: 'gerrit'
254
255     wrappers:
256       - fdio-infra-wrappers:
257           build-timeout: '75'
258
259     builders:
260       - shell:
261           !include-raw-escape:
262           - ../scripts/setup_vpp_ubuntu_docker_test.sh
263       - shell:
264           !include-raw-escape:
265           - ../scripts/setup_vpp_dpdk_dev_env.sh
266       - shell:
267           !include-raw-escape:
268           - ../scripts/vpp/build.sh
269
270     publishers:
271       - fdio-infra-shiplogs:
272           maven-version: 'mvn36'
273
274 - job-template:
275     name: 'vpp-historic-merge-{stream}-{os}'
276
277     project-type: freestyle
278     node: '{os}-us'
279
280     build-discarder:
281       daysToKeep: '{build-days-to-keep}'
282       numToKeep: 100
283       artifactDaysToKeep: '{build-artifact-days-to-keep}'
284       artifactNumToKeep: '{build-artifact-num-to-keep}'
285
286     parameters:
287       - project-parameter:
288           project: '{project}'
289       - gerrit-parameter:
290           branch: '{branch}'
291       - os-parameter:
292           os: '{os}'
293       - maven-project-parameter:
294           maven: 'mvn33-new'
295       - maven-exec:
296           maven-version: 'mvn33-new'
297       - stream-parameter:
298           stream: '{stream}'
299       - repo-name-parameter:
300           repo-name: '{repo-stream-part}.{repo-os-part}'
301       - string:
302           name: ARCHIVE_ARTIFACTS
303           default: '{archive-artifacts}'
304           description: Artifacts to archive to the logs server.
305
306     scm:
307       - gerrit-trigger-scm:
308           credentials-id: 'jenkins-gerrit-credentials'
309           refspec: ''
310           choosing-strategy: 'default'
311
312     wrappers:
313       - fdio-infra-wrappers:
314           build-timeout: 120
315
316     triggers:
317       - gerrit-trigger-patch-merged:
318           name: '{project}'
319           branch: '{branch}'
320
321     builders:
322       - config-file-provider:
323           files:
324             - file-id: '.packagecloud'
325               target: '/root'
326       - config-file-provider:
327           files:
328             - file-id: 'packagecloud_api'
329               target: '/root'
330       - shell:
331           !include-raw-escape:
332           - ../scripts/setup_vpp_ubuntu_docker_test.sh
333       - shell:
334           !include-raw-escape:
335           - ../scripts/setup_vpp_dpdk_dev_env.sh
336       - shell:
337           !include-raw-escape:
338           - ../scripts/vpp/build.sh
339       - provide-maven-settings:
340           settings-file: 'vpp-settings'
341           global-settings-file: 'global-settings'
342       - shell:
343           !include-raw-escape:
344           - ../scripts/packagecloud_push.sh
345
346     publishers:
347       - fdio-infra-shiplogs:
348           maven-version: 'mvn36'
349
350 - job-template:
351     name: 'vpp-arm-verify-{stream}-{os}'
352
353     project-type: freestyle
354     node: '{os}arm-us'
355     concurrent: true
356     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
357
358     build-discarder:
359       daysToKeep: '{build-days-to-keep}'
360       numToKeep: 100
361       artifactDaysToKeep: '{build-artifact-days-to-keep}'
362       artifactNumToKeep: '{build-artifact-num-to-keep}'
363
364     parameters:
365       - project-parameter:
366           project: '{project}'
367       - gerrit-parameter:
368           branch: '{branch}'
369       - os-parameter:
370           os: '{os}'
371       - repo-name-parameter:
372           repo-name: '{repo-stream-part}.{repo-os-part}'
373       - stream-parameter:
374           stream: '{stream}'
375       - string:
376           name: ARCHIVE_ARTIFACTS
377           default: '{archive-artifacts}'
378           description: Artifacts to archive to the logs server.
379
380     scm:
381       - gerrit-trigger-scm:
382           credentials-id: 'jenkins-gerrit-credentials'
383           refspec: '$GERRIT_REFSPEC'
384           choosing-strategy: 'gerrit'
385
386     wrappers:
387       - fdio-infra-wrappers:
388           build-timeout: 120
389
390     triggers:
391       - gerrit-trigger-checkstyle:
392           name: '{project}'
393           branch: '{branch}'
394
395     builders:
396       - shell:
397           !include-raw-escape:
398           - ../scripts/setup_vpp_ubuntu_arm_test.sh
399       - shell:
400           !include-raw-escape:
401           - ../scripts/setup_vpp_dpdk_dev_env.sh
402       - shell:
403           !include-raw-escape:
404           - ../scripts/vpp/parallel-vars.sh
405           # Do not split, the line below wants env vars from the line above.
406           - ../scripts/vpp/arm-build.sh
407
408     publishers:
409       - fdio-infra-shiplogs:
410           maven-version: 'mvn36'
411
412 - job-template:
413     name: 'vpp-arm-merge-{stream}-{os}'
414
415     project-type: freestyle
416     node: '{os}arm-m'
417
418     build-discarder:
419       daysToKeep: '{build-days-to-keep}'
420       numToKeep: 100
421       artifactDaysToKeep: '{build-artifact-days-to-keep}'
422       artifactNumToKeep: '{build-artifact-num-to-keep}'
423
424     parameters:
425       - project-parameter:
426           project: '{project}'
427       - gerrit-parameter:
428           branch: '{branch}'
429       - os-parameter:
430           os: '{os}'
431       - maven-project-parameter:
432           maven: 'mvn33-new'
433       - maven-exec:
434           maven-version: 'mvn33-new'
435       - stream-parameter:
436           stream: '{stream}'
437       - repo-name-parameter:
438           repo-name: '{repo-stream-part}.{repo-os-part}'
439       - string:
440           name: ARCHIVE_ARTIFACTS
441           default: '{archive-artifacts}'
442           description: Artifacts to archive to the logs server.
443
444     scm:
445       - gerrit-trigger-scm:
446           credentials-id: 'jenkins-gerrit-credentials'
447           refspec: ''
448           choosing-strategy: 'default'
449
450     wrappers:
451       - fdio-infra-wrappers:
452           build-timeout: 120
453
454     triggers:
455       - gerrit-trigger-patch-merged:
456           name: '{project}'
457           branch: '{branch}'
458
459     builders:
460       - config-file-provider:
461           files:
462             - file-id: '.packagecloud'
463               target: '/root'
464       - config-file-provider:
465           files:
466             - file-id: 'packagecloud_api'
467               target: '/root'
468       - shell:
469           !include-raw-escape:
470           - ../scripts/setup_vpp_ubuntu_arm_test.sh
471       - shell:
472           !include-raw-escape:
473           - ../scripts/setup_vpp_dpdk_dev_env.sh
474       - shell:
475           !include-raw-escape:
476           - ../scripts/vpp/parallel-vars.sh
477           # Do not split, the line below wants env vars from the line above.
478           - ../scripts/vpp/arm-build-no-test.sh
479
480       - provide-maven-settings:
481           settings-file: 'vpp-settings'
482           global-settings-file: 'global-settings'
483       - shell:
484           !include-raw-escape:
485           - ../scripts/packagecloud_push.sh
486
487     publishers:
488       - fdio-infra-shiplogs:
489           maven-version: 'mvn36'
490
491 - job-template:
492     name: 'vpp-checkstyle-verify-{stream}'
493
494     project-type: freestyle
495     node: '{os}-us'
496     concurrent: true
497     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
498
499     build-discarder:
500       daysToKeep: '{build-days-to-keep}'
501       numToKeep: '{build-num-to-keep}'
502       artifactDaysToKeep: '{build-artifact-days-to-keep}'
503       artifactNumToKeep: '{build-artifact-num-to-keep}'
504
505     parameters:
506       - project-parameter:
507           project: '{project}'
508       - gerrit-parameter:
509           branch: '{branch}'
510       - os-parameter:
511           os: '{os}'
512       - repo-name-parameter:
513           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
514
515     scm:
516       - gerrit-trigger-scm:
517           credentials-id: 'jenkins-gerrit-credentials'
518           refspec: '$GERRIT_REFSPEC'
519           choosing-strategy: 'gerrit'
520
521     wrappers:
522       - fdio-infra-wrappers:
523           build-timeout: '{build-timeout}'
524
525     triggers:
526       - gerrit:
527           server-name: 'Primary'
528           trigger-on:
529             - patchset-created-event:
530                 exclude-drafts: 'true'
531                 exclude-trivial-rebase: 'false'
532                 exclude-no-code-change: 'false'
533             - draft-published-event
534             - comment-added-contains-event:
535                 comment-contains-value: 'checkstylecheck'
536             - comment-added-contains-event:
537                 comment-contains-value: 'docsonly'
538             - comment-added-contains-event:
539                 comment-contains-value: 'recheck'
540             - comment-added-contains-event:
541                 comment-contains-value: 'reverify'
542             # Following two are to cover missing functions of drafts going to review status
543             - comment-added-contains-event:
544                 comment-contains-value: 'runtest'
545             - comment-added-contains-event:
546                 comment-contains-value: 'This change is ready for review'
547           projects:
548             - project-compare-type: 'ANT'
549               project-pattern: '{project}'
550               branches:
551                 - branch-compare-type: 'ANT'
552                   branch-pattern: '**/{branch}'
553               file-paths:
554                 - compare-type: REG_EXP
555                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
556               forbidden-file-paths:
557                 - compare-type: REG_EXP
558                   pattern: .*docs\/.*
559                 - compare-type: REG_EXP
560                   pattern: .*extras\/emacs\/.*
561               disable-strict-forbidden-file-verification: 'true'
562           override-votes: true
563           gerrit-build-notbuilt-verified-value: 0
564           gerrit-build-successful-verified-value: 1
565           # yamllint disable-line rule:line-length
566           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
567           # yamllint disable-line rule:line-length
568           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
569           successful-message: 'checkstyle_success'
570           skip-vote:
571             successful: true
572             failed: false
573             unstable: false
574             notbuilt: false
575
576     builders:
577       - shell:
578           !include-raw-escape:
579           - ../scripts/vpp/checkstyle.sh
580       - shell:
581           !include-raw-escape:
582           - ../scripts/vpp/test-checkstyle.sh
583       - shell:
584           !include-raw-escape:
585           - ../scripts/vpp/commitmsg.sh
586
587     publishers:
588       - fdio-infra-shiplogs:
589           maven-version: 'mvn36'
590
591 - job-template:
592     name: 'vpp-beta-verify-{stream}-{os}'
593
594     project-type: freestyle
595     node: '{os}-us'
596     concurrent: true
597     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
598
599     build-discarder:
600       daysToKeep: '{build-days-to-keep}'
601       numToKeep: 100
602       artifactDaysToKeep: '{build-artifact-days-to-keep}'
603       artifactNumToKeep: '{build-artifact-num-to-keep}'
604
605     parameters:
606       - project-parameter:
607           project: '{project}'
608       - gerrit-parameter:
609           branch: '{branch}'
610       - os-parameter:
611           os: '{os}'
612       - repo-name-parameter:
613           repo-name: '{repo-stream-part}.{repo-os-part}'
614       - stream-parameter:
615           stream: '{stream}'
616       - string:
617           name: ARCHIVE_ARTIFACTS
618           default: '{archive-artifacts}'
619           description: Artifacts to archive to the logs server.
620
621     scm:
622       - gerrit-trigger-scm:
623           credentials-id: 'jenkins-gerrit-credentials'
624           refspec: '$GERRIT_REFSPEC'
625           choosing-strategy: 'gerrit'
626
627     wrappers:
628       - fdio-infra-wrappers:
629           build-timeout: 120
630
631     triggers:
632       - gerrit-trigger-manually-triggered:
633           comment-trigger-value: 'betacheck'
634           name: '{project}'
635           branch: '{branch}'
636
637     builders:
638       - shell:
639           !include-raw-escape:
640           - ../scripts/setup_vpp_ubuntu_docker_test.sh
641       - shell:
642           !include-raw-escape:
643           - ../scripts/setup_vpp_dpdk_dev_env.sh
644       - shell:
645           !include-raw-escape:
646           - ../scripts/vpp/build.sh
647
648     publishers:
649       - fdio-infra-shiplogs:
650           maven-version: 'mvn36'
651
652 - job-template:
653     name: 'vpp-verify-{stream}-{os}'
654
655     project-type: freestyle
656     node: '{os}-us'
657     concurrent: true
658     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
659
660     build-discarder:
661       daysToKeep: '{build-days-to-keep}'
662       numToKeep: 100
663       artifactDaysToKeep: '{build-artifact-days-to-keep}'
664       artifactNumToKeep: '{build-artifact-num-to-keep}'
665
666     parameters:
667       - project-parameter:
668           project: '{project}'
669       - gerrit-parameter:
670           branch: '{branch}'
671       - os-parameter:
672           os: '{os}'
673       - repo-name-parameter:
674           repo-name: '{repo-stream-part}.{repo-os-part}'
675       - stream-parameter:
676           stream: '{stream}'
677       - string:
678           name: ARCHIVE_ARTIFACTS
679           default: '{archive-artifacts}'
680           description: Artifacts to archive to the logs server.
681
682     scm:
683       - gerrit-trigger-scm:
684           credentials-id: 'jenkins-gerrit-credentials'
685           refspec: '$GERRIT_REFSPEC'
686           choosing-strategy: 'gerrit'
687
688     wrappers:
689       - fdio-infra-wrappers:
690           build-timeout: 120
691
692     triggers:
693       - gerrit-trigger-checkstyle:
694           name: '{project}'
695           branch: '{branch}'
696
697     builders:
698       - shell:
699           !include-raw-escape:
700           - ../scripts/setup_vpp_ubuntu_docker_test.sh
701       - shell:
702           !include-raw-escape:
703           - ../scripts/setup_vpp_dpdk_dev_env.sh
704       - shell:
705           !include-raw-escape:
706           - ../scripts/vpp/build.sh
707
708     publishers:
709       - fdio-infra-shiplogs:
710           maven-version: 'mvn36'
711
712 - job-template:
713     name: 'vpp-verify-{stream}-clang'
714
715     project-type: freestyle
716     node: 'ubuntu1804-us'
717     concurrent: true
718     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
719
720     build-discarder:
721       daysToKeep: '{build-days-to-keep}'
722       numToKeep: '{build-num-to-keep}'
723       artifactDaysToKeep: '{build-artifact-days-to-keep}'
724       artifactNumToKeep: '{build-artifact-num-to-keep}'
725
726     parameters:
727       - project-parameter:
728           project: '{project}'
729       - gerrit-parameter:
730           branch: '{branch}'
731       - os-parameter:
732           os: 'ubuntu1804'
733       - repo-name-parameter:
734           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
735       - stream-parameter:
736           stream: '{stream}'
737
738     scm:
739       - gerrit-trigger-scm:
740           credentials-id: 'jenkins-gerrit-credentials'
741           refspec: '$GERRIT_REFSPEC'
742           choosing-strategy: 'gerrit'
743
744     wrappers:
745       - fdio-infra-wrappers:
746           build-timeout: '{build-timeout}'
747
748     triggers:
749       - gerrit-trigger-checkstyle:
750           name: '{project}'
751           branch: '{branch}'
752
753     builders:
754       - shell:
755           !include-raw-escape:
756           - ../scripts/setup_vpp_ubuntu_docker_test.sh
757       - shell:
758           !include-raw-escape:
759           - ../scripts/setup_vpp_dpdk_dev_env.sh
760       - shell:
761           !include-raw-escape:
762           - ../scripts/vpp/clang-build.sh
763
764     publishers:
765       - fdio-infra-shiplogs:
766           maven-version: 'mvn36'
767
768 - job-template:
769     name: 'vpp-coverity-{stream}'
770
771     project-type: freestyle
772     node: 'ubuntu1804-us'
773     concurrent: true
774     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
775
776     build-discarder:
777       daysToKeep: '{build-days-to-keep}'
778       numToKeep: '{build-num-to-keep}'
779       artifactDaysToKeep: '{build-artifact-days-to-keep}'
780       artifactNumToKeep: '{build-artifact-num-to-keep}'
781
782     parameters:
783       - project-parameter:
784           project: '{project}'
785       - gerrit-parameter:
786           branch: '{branch}'
787       - os-parameter:
788           os: 'ubuntu1804'
789       - repo-name-parameter:
790           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
791       - stream-parameter:
792           stream: '{stream}'
793
794     scm:
795       - gerrit-trigger-scm:
796           credentials-id: 'jenkins-gerrit-credentials'
797           refspec: ''
798           choosing-strategy: 'gerrit'
799
800     wrappers:
801       - fdio-infra-wrappers:
802           build-timeout: '{build-timeout}'
803
804     triggers:
805       - timed: '0 14 * * *'
806
807     builders:
808       - shell:
809           command: !include-raw-escape: ../scripts/vpp/coverity.sh
810           unstable-return: 42
811
812     publishers:
813       - email-ext:
814           # yamllint disable-line rule:line-length
815           recipients: 'ejk@cisco.com'
816           reply-to: ''
817           content-type: 'text'
818           subject: 'Coverity run passing as of $BUILD_TIMESTAMP'
819           # yamllint disable-line rule:line-length
820           body: |
821                 Coverity run passing.
822
823                 ${{FILE,path="output.txt"}}
824           failure: false
825           success: true
826       - email-ext:
827           # yamllint disable-line rule:line-length
828           recipients: 'ejk@cisco.com'
829           reply-to: ''
830           content-type: 'text'
831           subject: 'Coverity run UNSTABLE as of $BUILD_TIMESTAMP'
832           # yamllint disable-line rule:line-length
833           body: |
834                 Coverity run UNSTABLE.
835
836                 Something went wrong with daily scan.
837           failure: false
838           unstable: true
839       - email-ext:
840           # yamllint disable-line rule:line-length
841           recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
842           reply-to: ''
843           content-type: 'text'
844           subject: 'Coverity run FAILED as of $BUILD_TIMESTAMP'
845           # yamllint disable-line rule:line-length
846           body: |
847                 Coverity run failed today.
848
849                 ${{FILE,path="output.txt"}}
850           failure: true
851       - email-ext:
852           # yamllint disable-line rule:line-length
853           recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
854           reply-to: ''
855           content-type: 'text'
856           subject: 'Coverity run as of $BUILD_TIMESTAMP'
857           # yamllint disable-line rule:line-length
858           body: |
859                 Coverity run fixed today.
860
861                 ${{FILE,path="output.txt"}}
862           failure: false
863           fixed: true
864       - fdio-infra-shiplogs:
865           maven-version: 'mvn36'
866
867 - job-template:
868     name: 'vpp-merge-{stream}-{os}'
869
870     project-type: freestyle
871     node: '{os}-us'
872
873     build-discarder:
874       daysToKeep: '{build-days-to-keep}'
875       numToKeep: 100
876       artifactDaysToKeep: '{build-artifact-days-to-keep}'
877       artifactNumToKeep: '{build-artifact-num-to-keep}'
878
879     parameters:
880       - project-parameter:
881           project: '{project}'
882       - gerrit-parameter:
883           branch: '{branch}'
884       - os-parameter:
885           os: '{os}'
886       - maven-project-parameter:
887           maven: 'mvn33-new'
888       - maven-exec:
889           maven-version: 'mvn33-new'
890       - stream-parameter:
891           stream: '{stream}'
892       - repo-name-parameter:
893           repo-name: '{repo-stream-part}.{repo-os-part}'
894       - string:
895           name: ARCHIVE_ARTIFACTS
896           default: '{archive-artifacts}'
897           description: Artifacts to archive to the logs server.
898
899     scm:
900       - gerrit-trigger-scm:
901           credentials-id: 'jenkins-gerrit-credentials'
902           refspec: ''
903           choosing-strategy: 'default'
904
905     wrappers:
906       - fdio-infra-wrappers:
907           build-timeout: '{build-timeout}'
908
909     triggers:
910       - gerrit-trigger-patch-merged:
911           name: '{project}'
912           branch: '{branch}'
913
914     builders:
915       - config-file-provider:
916           files:
917             - file-id: '.packagecloud'
918               target: '/root'
919       - config-file-provider:
920           files:
921             - file-id: 'packagecloud_api'
922               target: '/root'
923       - shell:
924           !include-raw-escape:
925           - ../scripts/vpp/checkstyle.sh
926       - shell:
927           !include-raw-escape:
928           - ../scripts/setup_vpp_ubuntu_docker_test.sh
929       - shell:
930           !include-raw-escape:
931           - ../scripts/setup_vpp_dpdk_dev_env.sh
932       - shell:
933           !include-raw-escape:
934           - ../scripts/vpp/build.sh
935       - provide-maven-settings:
936           settings-file: 'vpp-settings'
937           global-settings-file: 'global-settings'
938       - shell:
939           !include-raw-escape:
940           - ../scripts/packagecloud_push.sh
941
942     publishers:
943       - fdio-infra-shiplogs:
944           maven-version: 'mvn36'
945
946 - job-template:
947     name: 'vpp-beta-merge-{stream}-{os}'
948
949     project-type: freestyle
950     node: '{os}-us'
951
952     build-discarder:
953       daysToKeep: '{build-days-to-keep}'
954       numToKeep: 100
955       artifactDaysToKeep: '{build-artifact-days-to-keep}'
956       artifactNumToKeep: '{build-artifact-num-to-keep}'
957
958     parameters:
959       - project-parameter:
960           project: '{project}'
961       - gerrit-parameter:
962           branch: '{branch}'
963       - os-parameter:
964           os: '{os}'
965       - maven-project-parameter:
966           maven: 'mvn33-new'
967       - maven-exec:
968           maven-version: 'mvn33-new'
969       - stream-parameter:
970           stream: '{stream}'
971       - repo-name-parameter:
972           repo-name: '{repo-stream-part}.{repo-os-part}'
973       - string:
974           name: ARCHIVE_ARTIFACTS
975           default: '{archive-artifacts}'
976           description: Artifacts to archive to the logs server.
977
978     scm:
979       - gerrit-trigger-scm:
980           credentials-id: 'jenkins-gerrit-credentials'
981           refspec: ''
982           choosing-strategy: 'default'
983
984     wrappers:
985       - fdio-infra-wrappers:
986           build-timeout: '{build-timeout}'
987
988     triggers:
989       - gerrit-trigger-manually-triggered:
990           comment-trigger-value: 'betamerge'
991           name: '{project}'
992           branch: '{branch}'
993
994     builders:
995       - config-file-provider:
996           files:
997             - file-id: '.packagecloud'
998               target: '/root'
999       - config-file-provider:
1000           files:
1001             - file-id: 'packagecloud_api'
1002               target: '/root'
1003       - shell:
1004           !include-raw-escape:
1005           - ../scripts/vpp/checkstyle.sh
1006       - shell:
1007           !include-raw-escape:
1008           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1009       - shell:
1010           !include-raw-escape:
1011           - ../scripts/setup_vpp_dpdk_dev_env.sh
1012       - shell:
1013           !include-raw-escape:
1014           - ../scripts/vpp/build.sh
1015       - provide-maven-settings:
1016           settings-file: 'vpp-settings'
1017           global-settings-file: 'global-settings'
1018       - shell:
1019           !include-raw-escape:
1020           - ../scripts/packagecloud_push.sh
1021
1022     publishers:
1023       - fdio-infra-shiplogs:
1024           maven-version: 'mvn36'
1025
1026 - job-template:
1027     name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
1028     description: |
1029       <ul>
1030           <li>executor
1031               <ul>
1032                   <li>{device-executor}
1033               </ul>
1034       </ul>
1035
1036     project-type: freestyle
1037     node: '{device-executor}'
1038     concurrent: true
1039     archive-artifacts: '**/csit_current/**/*.*'
1040     latest-only: false
1041
1042     build-discarder:
1043       daysToKeep: '{build-days-to-keep}'
1044       numToKeep: 100
1045       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1046       artifactNumToKeep: '{build-artifact-num-to-keep}'
1047
1048     parameters:
1049       - project-parameter:
1050           project: '{project}'
1051       - gerrit-parameter:
1052           branch: '{branch}'
1053       - os-parameter:
1054           os: '{os}'
1055       - repo-name-parameter:
1056           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
1057       - gerrit-refspec-parameter
1058       - gerrit-event-type-parameter
1059       - gerrit-event-comment-text-parameter
1060       - gerrit-csit-refspec-parameter
1061       - stream-parameter:
1062           stream: '{stream}'
1063       - string:
1064           name: ARCHIVE_ARTIFACTS
1065           default: '{archive-artifacts}'
1066           description: Artifacts to archive to the logs server.
1067
1068     scm:
1069       - gerrit-trigger-scm:
1070           credentials-id: 'jenkins-gerrit-credentials'
1071           refspec: '$GERRIT_REFSPEC'
1072           choosing-strategy: 'gerrit'
1073
1074     wrappers:
1075       - fdio-infra-wrappers:
1076           build-timeout: '90'
1077
1078     triggers:
1079       - '{trigger}':
1080           name: '{project}'
1081           branch: '{branch}'
1082           skip-vote: '{skip-vote}'
1083
1084     builders:
1085       - shell:
1086           !include-raw-escape:
1087           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1088       - shell:
1089           !include-raw-escape:
1090           - ../scripts/setup_vpp_dpdk_dev_env.sh
1091       - shell:
1092           !include-raw-escape:
1093           - ../scripts/vpp/csit-device.sh
1094
1095     publishers:
1096       - robot-report:
1097           output-path: 'csit_current/'
1098
1099       - fdio-infra-shiplogs:
1100           maven-version: 'mvn36'
1101
1102 - job-template:
1103     name: 'vpp-csit-verify-perf-{stream}-{node-arch}'
1104     description: |
1105       <ul>
1106           <li>executor
1107               <ul>
1108                   <li>{executor}
1109               </ul>
1110           <li>Objective
1111           Contrary to csit-vpp job, this also measures the parent performance,
1112           and fails if performance regression is detected.
1113           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
1114       </ul>
1115
1116     project-type: freestyle
1117     node: '{executor}'
1118     concurrent: true
1119     archive-artifacts: >
1120       **/csit_current/**/*.*
1121       **/csit_parent/**/*.*
1122     latest-only: false
1123
1124     build-discarder:
1125       daysToKeep: '{build-days-to-keep}'
1126       numToKeep: 100
1127       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1128       artifactNumToKeep: '{build-artifact-num-to-keep}'
1129
1130     parameters:
1131       - project-parameter:
1132           project: '{project}'
1133       - gerrit-parameter:
1134           branch: '{branch}'
1135       - os-parameter:
1136           os: '{os}'
1137       - repo-name-parameter:
1138           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
1139       - gerrit-refspec-parameter
1140       - gerrit-event-type-parameter
1141       - gerrit-event-comment-text-parameter
1142       - gerrit-csit-refspec-parameter
1143       - csit-perf-trial-duration-parameter:
1144           csit-perf-trial-duration: "10.0"
1145       - csit-perf-trial-multiplicity-parameter:
1146           csit-perf-trial-multiplicity: "5"
1147       - stream-parameter:
1148           stream: '{stream}'
1149       - string:
1150           name: ARCHIVE_ARTIFACTS
1151           default: '{archive-artifacts}'
1152           description: Artifacts to archive to the logs server.
1153
1154     scm:
1155       - gerrit-trigger-scm:
1156           credentials-id: 'jenkins-gerrit-credentials'
1157           refspec: '$GERRIT_REFSPEC'
1158           choosing-strategy: 'gerrit'
1159
1160     wrappers:
1161       - fdio-infra-wrappers-non-activity-timeout:
1162           build-timeout: 300
1163
1164     triggers:
1165       - gerrit-trigger-csit-perftest:
1166           project: '{project}'
1167           branch: '{branch}'
1168           trigger-word: 'perftest-{node-arch}'
1169           skip-vote: true
1170
1171     builders:
1172       - shell:
1173           !include-raw-escape:
1174           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1175       - shell:
1176           !include-raw-escape:
1177           - ../scripts/setup_vpp_dpdk_dev_env.sh
1178       - shell:
1179           !include-raw-escape:
1180           - ../scripts/vpp/csit-perf.sh
1181
1182     publishers:
1183       - robot-report:
1184           output-path: 'csit_current/0/'
1185
1186       - lf-infra-publish
1187
1188 - job-template:
1189     name: 'vpp-csit-verify-api-crc-{stream}'
1190
1191     project-type: freestyle
1192     node: '{os}-us'
1193     concurrent: true
1194     archive-artifacts: ''
1195     latest-only: false
1196
1197     build-discarder:
1198       daysToKeep: '{build-days-to-keep}'
1199       numToKeep: 100
1200       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1201       artifactNumToKeep: '{build-artifact-num-to-keep}'
1202
1203     parameters:
1204       - project-parameter:
1205           project: '{project}'
1206       - gerrit-parameter:
1207           branch: '{branch}'
1208       - gerrit-refspec-parameter
1209       - gerrit-csit-refspec-parameter
1210       - stream-parameter:
1211           stream: '{stream}'
1212       - string:
1213           name: ARCHIVE_ARTIFACTS
1214           default: '{archive-artifacts}'
1215           description: Artifacts to archive to the logs server.
1216       # Not sure whether not failing has any useful usage,
1217       # but it does not hurt to have some flexibility for future.
1218       - csit-fail-on-crc-mismatch-parameter:
1219           fail-on-crc-mismatch: 'True'
1220
1221     scm:
1222       - gerrit-trigger-scm:
1223           credentials-id: 'jenkins-gerrit-credentials'
1224           refspec: '$GERRIT_REFSPEC'
1225           choosing-strategy: 'gerrit'
1226
1227     wrappers:
1228       - fdio-infra-wrappers-non-activity-timeout:
1229           build-timeout: 300
1230
1231     triggers:
1232       # TODO: Make other verify jobs trigger on success of this one,
1233       # without breaking verification for VPP branches before stable/1908.
1234       - gerrit-trigger-checkstyle:
1235           name: '{project}'
1236           branch: '{branch}'
1237
1238     builders:
1239       - shell:
1240           !include-raw-escape:
1241           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1242       - shell:
1243           !include-raw-escape:
1244           - ../scripts/vpp/check_crc.sh
1245       # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1246
1247     publishers:
1248       - fdio-infra-shiplogs:
1249           maven-version: 'mvn36'