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