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