VPP: Add CRC checking to older branches
[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-4c-4g
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       - naginator:
274           rerun-unstable-builds: false
275           max-failed-builds: 1
276           fixed-delay: 90
277
278 - job-template:
279     name: 'vpp-historic-merge-{stream}-{os}'
280
281     project-type: freestyle
282     node: '{os}-us'
283
284     build-discarder:
285       daysToKeep: '{build-days-to-keep}'
286       numToKeep: 100
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       - maven-project-parameter:
298           maven: 'mvn33-new'
299       - maven-exec:
300           maven-version: 'mvn33-new'
301       - stream-parameter:
302           stream: '{stream}'
303       - repo-name-parameter:
304           repo-name: '{repo-stream-part}.{repo-os-part}'
305       - string:
306           name: ARCHIVE_ARTIFACTS
307           default: '{archive-artifacts}'
308           description: Artifacts to archive to the logs server.
309
310     scm:
311       - gerrit-trigger-scm:
312           credentials-id: 'jenkins-gerrit-credentials'
313           refspec: ''
314           choosing-strategy: 'default'
315
316     wrappers:
317       - fdio-infra-wrappers:
318           build-timeout: 120
319
320     triggers:
321       - gerrit-trigger-patch-merged:
322           name: '{project}'
323           branch: '{branch}'
324
325     builders:
326       - config-file-provider:
327           files:
328             - file-id: '.packagecloud'
329               target: '/root'
330       - config-file-provider:
331           files:
332             - file-id: 'packagecloud_api'
333               target: '/root'
334       - shell:
335           !include-raw-escape:
336           - ../scripts/setup_vpp_ubuntu_docker_test.sh
337       - shell:
338           !include-raw-escape:
339           - ../scripts/setup_vpp_dpdk_dev_env.sh
340       - shell:
341           !include-raw-escape:
342           - ../scripts/vpp/build.sh
343       - provide-maven-settings:
344           settings-file: 'vpp-settings'
345           global-settings-file: 'global-settings'
346       - shell:
347           !include-raw-escape:
348           - ../scripts/packagecloud_push.sh
349
350     publishers:
351       - fdio-infra-shiplogs:
352           maven-version: 'mvn36'
353
354 - job-template:
355     name: 'vpp-arm-verify-{stream}-{os}'
356
357     project-type: freestyle
358     node: '{os}arm-us'
359     concurrent: true
360     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
361
362     build-discarder:
363       daysToKeep: '{build-days-to-keep}'
364       numToKeep: 100
365       artifactDaysToKeep: '{build-artifact-days-to-keep}'
366       artifactNumToKeep: '{build-artifact-num-to-keep}'
367
368     parameters:
369       - project-parameter:
370           project: '{project}'
371       - gerrit-parameter:
372           branch: '{branch}'
373       - os-parameter:
374           os: '{os}'
375       - repo-name-parameter:
376           repo-name: '{repo-stream-part}.{repo-os-part}'
377       - stream-parameter:
378           stream: '{stream}'
379       - string:
380           name: ARCHIVE_ARTIFACTS
381           default: '{archive-artifacts}'
382           description: Artifacts to archive to the logs server.
383
384     scm:
385       - gerrit-trigger-scm:
386           credentials-id: 'jenkins-gerrit-credentials'
387           refspec: '$GERRIT_REFSPEC'
388           choosing-strategy: 'gerrit'
389
390     wrappers:
391       - fdio-infra-wrappers:
392           build-timeout: 120
393
394     triggers:
395       - gerrit-trigger-checkstyle:
396           name: '{project}'
397           branch: '{branch}'
398
399     builders:
400       - shell:
401           !include-raw-escape:
402           - ../scripts/setup_vpp_ubuntu_arm_test.sh
403       - shell:
404           !include-raw-escape:
405           - ../scripts/setup_vpp_dpdk_dev_env.sh
406       - shell:
407           !include-raw-escape:
408           - ../scripts/vpp/parallel-vars.sh
409           # Do not split, the line below wants env vars from the line above.
410           - ../scripts/vpp/arm-build.sh
411
412     publishers:
413       - fdio-infra-shiplogs:
414           maven-version: 'mvn36'
415       - naginator:
416           rerun-unstable-builds: false
417           max-failed-builds: 1
418           fixed-delay: 90
419
420 - job-template:
421     name: 'vpp-arm-merge-{stream}-{os}'
422
423     project-type: freestyle
424     node: '{os}arm-m'
425
426     build-discarder:
427       daysToKeep: '{build-days-to-keep}'
428       numToKeep: 100
429       artifactDaysToKeep: '{build-artifact-days-to-keep}'
430       artifactNumToKeep: '{build-artifact-num-to-keep}'
431
432     parameters:
433       - project-parameter:
434           project: '{project}'
435       - gerrit-parameter:
436           branch: '{branch}'
437       - os-parameter:
438           os: '{os}'
439       - maven-project-parameter:
440           maven: 'mvn33-new'
441       - maven-exec:
442           maven-version: 'mvn33-new'
443       - stream-parameter:
444           stream: '{stream}'
445       - repo-name-parameter:
446           repo-name: '{repo-stream-part}.{repo-os-part}'
447       - string:
448           name: ARCHIVE_ARTIFACTS
449           default: '{archive-artifacts}'
450           description: Artifacts to archive to the logs server.
451
452     scm:
453       - gerrit-trigger-scm:
454           credentials-id: 'jenkins-gerrit-credentials'
455           refspec: ''
456           choosing-strategy: 'default'
457
458     wrappers:
459       - fdio-infra-wrappers:
460           build-timeout: 120
461
462     triggers:
463       - gerrit-trigger-patch-merged:
464           name: '{project}'
465           branch: '{branch}'
466
467     builders:
468       - config-file-provider:
469           files:
470             - file-id: '.packagecloud'
471               target: '/root'
472       - config-file-provider:
473           files:
474             - file-id: 'packagecloud_api'
475               target: '/root'
476       - shell:
477           !include-raw-escape:
478           - ../scripts/setup_vpp_ubuntu_arm_test.sh
479       - shell:
480           !include-raw-escape:
481           - ../scripts/setup_vpp_dpdk_dev_env.sh
482       - shell:
483           !include-raw-escape:
484           - ../scripts/vpp/parallel-vars.sh
485           # Do not split, the line below wants env vars from the line above.
486           - ../scripts/vpp/arm-build-no-test.sh
487
488       - provide-maven-settings:
489           settings-file: 'vpp-settings'
490           global-settings-file: 'global-settings'
491       - shell:
492           !include-raw-escape:
493           - ../scripts/packagecloud_push.sh
494
495     publishers:
496       - fdio-infra-shiplogs:
497           maven-version: 'mvn36'
498
499 - job-template:
500     name: 'vpp-checkstyle-verify-{stream}'
501
502     project-type: freestyle
503     node: '{os}-us'
504     concurrent: true
505     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
506
507     build-discarder:
508       daysToKeep: '{build-days-to-keep}'
509       numToKeep: '{build-num-to-keep}'
510       artifactDaysToKeep: '{build-artifact-days-to-keep}'
511       artifactNumToKeep: '{build-artifact-num-to-keep}'
512
513     parameters:
514       - project-parameter:
515           project: '{project}'
516       - gerrit-parameter:
517           branch: '{branch}'
518       - os-parameter:
519           os: '{os}'
520       - repo-name-parameter:
521           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
522
523     scm:
524       - gerrit-trigger-scm:
525           credentials-id: 'jenkins-gerrit-credentials'
526           refspec: '$GERRIT_REFSPEC'
527           choosing-strategy: 'gerrit'
528
529     wrappers:
530       - fdio-infra-wrappers:
531           build-timeout: '{build-timeout}'
532
533     triggers:
534       - gerrit:
535           server-name: 'Primary'
536           trigger-on:
537             - patchset-created-event:
538                 exclude-drafts: 'true'
539                 exclude-trivial-rebase: 'false'
540                 exclude-no-code-change: 'false'
541             - draft-published-event
542             - comment-added-contains-event:
543                 comment-contains-value: 'checkstylecheck'
544             - comment-added-contains-event:
545                 comment-contains-value: 'docsonly'
546             - comment-added-contains-event:
547                 comment-contains-value: 'recheck'
548             - comment-added-contains-event:
549                 comment-contains-value: 'reverify'
550             # Following two are to cover missing functions of drafts going to review status
551             - comment-added-contains-event:
552                 comment-contains-value: 'runtest'
553             - comment-added-contains-event:
554                 comment-contains-value: 'This change is ready for review'
555           projects:
556             - project-compare-type: 'ANT'
557               project-pattern: '{project}'
558               branches:
559                 - branch-compare-type: 'ANT'
560                   branch-pattern: '**/{branch}'
561               file-paths:
562                 - compare-type: REG_EXP
563                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
564               forbidden-file-paths:
565                 - compare-type: REG_EXP
566                   pattern: .*docs\/.*
567                 - compare-type: REG_EXP
568                   pattern: .*extras\/emacs\/.*
569               disable-strict-forbidden-file-verification: 'true'
570           override-votes: true
571           gerrit-build-notbuilt-verified-value: 0
572           gerrit-build-successful-verified-value: 1
573           # yamllint disable-line rule:line-length
574           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
575           # yamllint disable-line rule:line-length
576           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
577           successful-message: 'checkstyle_success'
578           skip-vote:
579             successful: true
580             failed: false
581             unstable: false
582             notbuilt: false
583
584     builders:
585       - shell:
586           !include-raw-escape:
587           - ../scripts/vpp/checkstyle.sh
588       - shell:
589           !include-raw-escape:
590           - ../scripts/vpp/test-checkstyle.sh
591       - shell:
592           !include-raw-escape:
593           - ../scripts/vpp/commitmsg.sh
594
595     publishers:
596       - fdio-infra-shiplogs:
597           maven-version: 'mvn36'
598       - naginator:
599           rerun-unstable-builds: true
600           max-failed-builds: 1
601           fixed-delay: 90
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       - naginator:
724           rerun-unstable-builds: false
725           max-failed-builds: 2
726           fixed-delay: 90
727
728 - job-template:
729     name: 'vpp-verify-{stream}-clang'
730
731     project-type: freestyle
732     node: 'ubuntu1804-us'
733     concurrent: true
734     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
735
736     build-discarder:
737       daysToKeep: '{build-days-to-keep}'
738       numToKeep: '{build-num-to-keep}'
739       artifactDaysToKeep: '{build-artifact-days-to-keep}'
740       artifactNumToKeep: '{build-artifact-num-to-keep}'
741
742     parameters:
743       - project-parameter:
744           project: '{project}'
745       - gerrit-parameter:
746           branch: '{branch}'
747       - os-parameter:
748           os: 'ubuntu1804'
749       - repo-name-parameter:
750           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
751       - stream-parameter:
752           stream: '{stream}'
753
754     scm:
755       - gerrit-trigger-scm:
756           credentials-id: 'jenkins-gerrit-credentials'
757           refspec: '$GERRIT_REFSPEC'
758           choosing-strategy: 'gerrit'
759
760     wrappers:
761       - fdio-infra-wrappers:
762           build-timeout: '{build-timeout}'
763
764     triggers:
765       - gerrit-trigger-checkstyle:
766           name: '{project}'
767           branch: '{branch}'
768
769     builders:
770       - shell:
771           !include-raw-escape:
772           - ../scripts/setup_vpp_ubuntu_docker_test.sh
773       - shell:
774           !include-raw-escape:
775           - ../scripts/setup_vpp_dpdk_dev_env.sh
776       - shell:
777           !include-raw-escape:
778           - ../scripts/vpp/clang-build.sh
779
780     publishers:
781       - fdio-infra-shiplogs:
782           maven-version: 'mvn36'
783       - naginator:
784           rerun-unstable-builds: false
785           max-failed-builds: 1
786           fixed-delay: 90
787
788 - job-template:
789     name: 'vpp-coverity-{stream}'
790
791     project-type: freestyle
792     node: 'ubuntu1804-us'
793     concurrent: true
794     archive-artifacts: '/tmp/vpp-failed-unittests/*/* **/core'
795
796     build-discarder:
797       daysToKeep: '{build-days-to-keep}'
798       numToKeep: '{build-num-to-keep}'
799       artifactDaysToKeep: '{build-artifact-days-to-keep}'
800       artifactNumToKeep: '{build-artifact-num-to-keep}'
801
802     parameters:
803       - project-parameter:
804           project: '{project}'
805       - gerrit-parameter:
806           branch: '{branch}'
807       - os-parameter:
808           os: 'ubuntu1804'
809       - repo-name-parameter:
810           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
811       - stream-parameter:
812           stream: '{stream}'
813
814     scm:
815       - gerrit-trigger-scm:
816           credentials-id: 'jenkins-gerrit-credentials'
817           refspec: ''
818           choosing-strategy: 'gerrit'
819
820     wrappers:
821       - fdio-infra-wrappers:
822           build-timeout: '{build-timeout}'
823
824     triggers:
825       - timed: '0 14 * * *'
826
827     builders:
828       - shell:
829           command: !include-raw-escape: ../scripts/vpp/coverity.sh
830           unstable-return: 42
831
832     publishers:
833       - email-ext:
834           # yamllint disable-line rule:line-length
835           recipients: 'ejk@cisco.com'
836           reply-to: ''
837           content-type: 'text'
838           subject: 'Coverity run passing as of $BUILD_TIMESTAMP'
839           # yamllint disable-line rule:line-length
840           body: |
841                 Coverity run passing.
842
843                 ${{FILE,path="output.txt"}}
844           failure: false
845           success: true
846       - email-ext:
847           # yamllint disable-line rule:line-length
848           recipients: 'ejk@cisco.com'
849           reply-to: ''
850           content-type: 'text'
851           subject: 'Coverity run UNSTABLE as of $BUILD_TIMESTAMP'
852           # yamllint disable-line rule:line-length
853           body: |
854                 Coverity run UNSTABLE.
855
856                 Something went wrong with daily scan.
857           failure: false
858           unstable: true
859       - email-ext:
860           # yamllint disable-line rule:line-length
861           recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
862           reply-to: ''
863           content-type: 'text'
864           subject: 'Coverity run FAILED as of $BUILD_TIMESTAMP'
865           # yamllint disable-line rule:line-length
866           body: |
867                 Coverity run failed today.
868
869                 ${{FILE,path="output.txt"}}
870           failure: true
871       - email-ext:
872           # yamllint disable-line rule:line-length
873           recipients: 'vpp-dev@lists.fd.io, ejk@cisco.com'
874           reply-to: ''
875           content-type: 'text'
876           subject: 'Coverity run as of $BUILD_TIMESTAMP'
877           # yamllint disable-line rule:line-length
878           body: |
879                 Coverity run fixed today.
880
881                 ${{FILE,path="output.txt"}}
882           failure: false
883           fixed: true
884       - fdio-infra-shiplogs:
885           maven-version: 'mvn36'
886
887 - job-template:
888     name: 'vpp-merge-{stream}-{os}'
889
890     project-type: freestyle
891     node: '{os}-us'
892
893     build-discarder:
894       daysToKeep: '{build-days-to-keep}'
895       numToKeep: 100
896       artifactDaysToKeep: '{build-artifact-days-to-keep}'
897       artifactNumToKeep: '{build-artifact-num-to-keep}'
898
899     parameters:
900       - project-parameter:
901           project: '{project}'
902       - gerrit-parameter:
903           branch: '{branch}'
904       - os-parameter:
905           os: '{os}'
906       - maven-project-parameter:
907           maven: 'mvn33-new'
908       - maven-exec:
909           maven-version: 'mvn33-new'
910       - stream-parameter:
911           stream: '{stream}'
912       - repo-name-parameter:
913           repo-name: '{repo-stream-part}.{repo-os-part}'
914       - string:
915           name: ARCHIVE_ARTIFACTS
916           default: '{archive-artifacts}'
917           description: Artifacts to archive to the logs server.
918
919     scm:
920       - gerrit-trigger-scm:
921           credentials-id: 'jenkins-gerrit-credentials'
922           refspec: ''
923           choosing-strategy: 'default'
924
925     wrappers:
926       - fdio-infra-wrappers:
927           build-timeout: '{build-timeout}'
928
929     triggers:
930       - gerrit-trigger-patch-merged:
931           name: '{project}'
932           branch: '{branch}'
933
934     builders:
935       - config-file-provider:
936           files:
937             - file-id: '.packagecloud'
938               target: '/root'
939       - config-file-provider:
940           files:
941             - file-id: 'packagecloud_api'
942               target: '/root'
943       - shell:
944           !include-raw-escape:
945           - ../scripts/vpp/checkstyle.sh
946       - shell:
947           !include-raw-escape:
948           - ../scripts/setup_vpp_ubuntu_docker_test.sh
949       - shell:
950           !include-raw-escape:
951           - ../scripts/setup_vpp_dpdk_dev_env.sh
952       - shell:
953           !include-raw-escape:
954           - ../scripts/vpp/build.sh
955       - provide-maven-settings:
956           settings-file: 'vpp-settings'
957           global-settings-file: 'global-settings'
958       - shell:
959           !include-raw-escape:
960           - ../scripts/packagecloud_push.sh
961
962     publishers:
963       - fdio-infra-shiplogs:
964           maven-version: 'mvn36'
965       - naginator:
966           rerun-unstable-builds: false
967           max-failed-builds: 1
968           fixed-delay: 90
969
970 - job-template:
971     name: 'vpp-beta-merge-{stream}-{os}'
972
973     project-type: freestyle
974     node: '{os}-us'
975
976     build-discarder:
977       daysToKeep: '{build-days-to-keep}'
978       numToKeep: 100
979       artifactDaysToKeep: '{build-artifact-days-to-keep}'
980       artifactNumToKeep: '{build-artifact-num-to-keep}'
981
982     parameters:
983       - project-parameter:
984           project: '{project}'
985       - gerrit-parameter:
986           branch: '{branch}'
987       - os-parameter:
988           os: '{os}'
989       - maven-project-parameter:
990           maven: 'mvn33-new'
991       - maven-exec:
992           maven-version: 'mvn33-new'
993       - stream-parameter:
994           stream: '{stream}'
995       - repo-name-parameter:
996           repo-name: '{repo-stream-part}.{repo-os-part}'
997       - string:
998           name: ARCHIVE_ARTIFACTS
999           default: '{archive-artifacts}'
1000           description: Artifacts to archive to the logs server.
1001
1002     scm:
1003       - gerrit-trigger-scm:
1004           credentials-id: 'jenkins-gerrit-credentials'
1005           refspec: ''
1006           choosing-strategy: 'default'
1007
1008     wrappers:
1009       - fdio-infra-wrappers:
1010           build-timeout: '{build-timeout}'
1011
1012     triggers:
1013       - gerrit-trigger-manually-triggered:
1014           comment-trigger-value: 'betamerge'
1015           name: '{project}'
1016           branch: '{branch}'
1017
1018     builders:
1019       - config-file-provider:
1020           files:
1021             - file-id: '.packagecloud'
1022               target: '/root'
1023       - config-file-provider:
1024           files:
1025             - file-id: 'packagecloud_api'
1026               target: '/root'
1027       - shell:
1028           !include-raw-escape:
1029           - ../scripts/vpp/checkstyle.sh
1030       - shell:
1031           !include-raw-escape:
1032           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1033       - shell:
1034           !include-raw-escape:
1035           - ../scripts/setup_vpp_dpdk_dev_env.sh
1036       - shell:
1037           !include-raw-escape:
1038           - ../scripts/vpp/build.sh
1039       - provide-maven-settings:
1040           settings-file: 'vpp-settings'
1041           global-settings-file: 'global-settings'
1042       - shell:
1043           !include-raw-escape:
1044           - ../scripts/packagecloud_push.sh
1045
1046     publishers:
1047       - fdio-infra-shiplogs:
1048           maven-version: 'mvn36'
1049
1050 - job-template:
1051     name: 'vpp-csit-verify-device-{stream}-{device-node-arch}'
1052     description: |
1053       <ul>
1054           <li>executor
1055               <ul>
1056                   <li>{device-executor}
1057               </ul>
1058       </ul>
1059
1060     project-type: freestyle
1061     node: '{device-executor}'
1062     concurrent: true
1063     archive-artifacts: '**/csit_current/**/*.*'
1064     latest-only: false
1065
1066     build-discarder:
1067       daysToKeep: '{build-days-to-keep}'
1068       numToKeep: 100
1069       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1070       artifactNumToKeep: '{build-artifact-num-to-keep}'
1071
1072     parameters:
1073       - project-parameter:
1074           project: '{project}'
1075       - gerrit-parameter:
1076           branch: '{branch}'
1077       - os-parameter:
1078           os: '{os}'
1079       - repo-name-parameter:
1080           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
1081       - gerrit-refspec-parameter
1082       - gerrit-event-type-parameter
1083       - gerrit-event-comment-text-parameter
1084       - gerrit-csit-refspec-parameter
1085       - stream-parameter:
1086           stream: '{stream}'
1087       - string:
1088           name: ARCHIVE_ARTIFACTS
1089           default: '{archive-artifacts}'
1090           description: Artifacts to archive to the logs server.
1091
1092     scm:
1093       - gerrit-trigger-scm:
1094           credentials-id: 'jenkins-gerrit-credentials'
1095           refspec: '$GERRIT_REFSPEC'
1096           choosing-strategy: 'gerrit'
1097
1098     wrappers:
1099       - fdio-infra-wrappers:
1100           build-timeout: '90'
1101
1102     triggers:
1103       - '{trigger}':
1104           name: '{project}'
1105           branch: '{branch}'
1106           skip-vote: '{skip-vote}'
1107
1108     builders:
1109       - shell:
1110           !include-raw-escape:
1111           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1112       - shell:
1113           !include-raw-escape:
1114           - ../scripts/setup_vpp_dpdk_dev_env.sh
1115       - shell:
1116           !include-raw-escape:
1117           - ../scripts/vpp/csit-device.sh
1118
1119     publishers:
1120       - robot-report:
1121           output-path: 'csit_current/'
1122
1123       - fdio-infra-shiplogs:
1124           maven-version: 'mvn36'
1125
1126 - job-template:
1127     name: 'vpp-csit-verify-perf-{stream}-{node-arch}'
1128     description: |
1129       <ul>
1130           <li>executor
1131               <ul>
1132                   <li>{executor}
1133               </ul>
1134       </ul>
1135
1136     project-type: freestyle
1137     node: '{executor}'
1138     concurrent: true
1139     archive-artifacts: >
1140       **/csit_current/**/*.*
1141       **/csit_parent/**/*.*
1142     latest-only: false
1143
1144     build-discarder:
1145       daysToKeep: '{build-days-to-keep}'
1146       numToKeep: 100
1147       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1148       artifactNumToKeep: '{build-artifact-num-to-keep}'
1149
1150     parameters:
1151       - project-parameter:
1152           project: '{project}'
1153       - gerrit-parameter:
1154           branch: '{branch}'
1155       - os-parameter:
1156           os: '{os}'
1157       - repo-name-parameter:
1158           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
1159       - gerrit-refspec-parameter
1160       - gerrit-event-type-parameter
1161       - gerrit-event-comment-text-parameter
1162       - gerrit-csit-refspec-parameter
1163       - csit-perf-trial-duration-parameter:
1164           csit-perf-trial-duration: "10.0"
1165       - csit-perf-trial-multiplicity-parameter:
1166           csit-perf-trial-multiplicity: "5"
1167       - stream-parameter:
1168           stream: '{stream}'
1169       - string:
1170           name: ARCHIVE_ARTIFACTS
1171           default: '{archive-artifacts}'
1172           description: Artifacts to archive to the logs server.
1173
1174     scm:
1175       - gerrit-trigger-scm:
1176           credentials-id: 'jenkins-gerrit-credentials'
1177           refspec: '$GERRIT_REFSPEC'
1178           choosing-strategy: 'gerrit'
1179
1180     wrappers:
1181       - fdio-infra-wrappers-non-activity-timeout:
1182           build-timeout: 300
1183
1184     triggers:
1185       - gerrit-trigger-csit-perftest:
1186           name: '{project}'
1187           branch: '{branch}'
1188           node-arch: '{node-arch}'
1189
1190     builders:
1191       - shell:
1192           !include-raw-escape:
1193           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1194       - shell:
1195           !include-raw-escape:
1196           - ../scripts/setup_vpp_dpdk_dev_env.sh
1197       - shell:
1198           !include-raw-escape:
1199           - ../scripts/vpp/csit-perf.sh
1200
1201     publishers:
1202       - robot-report:
1203           output-path: 'csit_current/0/'
1204
1205       - fdio-infra-shiplogs:
1206           maven-version: 'mvn36'
1207
1208 - job-template:
1209     name: 'vpp-csit-verify-api-crc-{stream}'
1210
1211     project-type: freestyle
1212     node: '{os}-us'
1213     concurrent: true
1214     archive-artifacts: ''
1215     latest-only: false
1216
1217     build-discarder:
1218       daysToKeep: '{build-days-to-keep}'
1219       numToKeep: 100
1220       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1221       artifactNumToKeep: '{build-artifact-num-to-keep}'
1222
1223     parameters:
1224       - project-parameter:
1225           project: '{project}'
1226       - gerrit-parameter:
1227           branch: '{branch}'
1228       - gerrit-refspec-parameter
1229       - gerrit-csit-refspec-parameter
1230       - stream-parameter:
1231           stream: '{stream}'
1232       - string:
1233           name: ARCHIVE_ARTIFACTS
1234           default: '{archive-artifacts}'
1235           description: Artifacts to archive to the logs server.
1236       # Not sure whether not failing has any useful usage,
1237       # but it does not hurt to have some flexibility for future.
1238       - csit-fail-on-crc-mismatch-parameter:
1239           fail-on-crc-mismatch: 'True'
1240
1241     scm:
1242       - gerrit-trigger-scm:
1243           credentials-id: 'jenkins-gerrit-credentials'
1244           refspec: '$GERRIT_REFSPEC'
1245           choosing-strategy: 'gerrit'
1246
1247     wrappers:
1248       - fdio-infra-wrappers-non-activity-timeout:
1249           build-timeout: 300
1250
1251     triggers:
1252       # TODO: Make other verify jobs trigger on success of this one,
1253       # without breaking verification for VPP branches before stable/1908.
1254       - gerrit-trigger-checkstyle:
1255           name: '{project}'
1256           branch: '{branch}'
1257
1258     builders:
1259       - shell:
1260           !include-raw-escape:
1261           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1262       - shell:
1263           !include-raw-escape:
1264           - ../scripts/vpp/check_crc.sh
1265       # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1266
1267     publishers:
1268       - fdio-infra-shiplogs:
1269           maven-version: 'mvn36'