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