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