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