feat(csit): Add 3n-icx
[ci-management.git] / jjb / vpp / vpp.yaml
1 # Copyright (c) 2021 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 ---
15 # PROJECT DEFINITIONS
16 #
17 # Please keep projects grouped in this order:
18 #     vpp-x86_64, vpp-aarch64, vpp-csit
19 #
20 # NOTES:
21 #   - The 'branch-refspec' attribute is used for sandbox testing.
22 #         Use the get_gerrit_refspec() bash function in
23 #         .../ci-management/extras/bash/sandbox_test_functions.sh
24 #         to query gerrit for the refspec of HEAD in a branch.
25 #         TODO: see if there is a refspec that works without requiring
26 #               use of get_gerrit_refspec and hand entering the result
27 #               in the WebUI 'Build With Parameters' gerrit refspec field.
28 # [end] NOTES
29
30 # VPP-CHECKSTYLE-X86_64 PROJECT
31 - project:
32     name: vpp-checkstyle-x86_64
33     jobs:
34       - 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
35     project: 'vpp'
36     os: 'ubuntu2004'
37     stream:
38       - master:
39           branch: 'master'
40           branch-refspec: ''
41       - '2106':
42           branch: 'stable/2106'
43           branch-refspec: ''
44       - '2110':
45           branch: 'stable/2110'
46           branch-refspec: ''
47       - '2202':
48           branch: 'stable/2202'
49           branch-refspec: ''
50     executor-arch: 'x86_64'
51 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
52
53 # VPP-X86_64 PROJECT
54 #
55 # NOTE: The list of supported branches for each OS are maintained
56 #       in .../ci-management/docker/scripts/lib_vpp.sh
57 #       The job configuration must be derived from that list, thus
58 #       modifications to both should be made at the same time.
59 #       Since x86_64 is the primary development architecture, this
60 #       project definition should be identical to the docker image
61 #       build scripts.  Other architectures may be a subset.
62 - project:
63     name: vpp-x86_64
64     jobs:
65       - 'vpp-verify-{stream}-{os}-{executor-arch}'
66       - 'vpp-merge-{stream}-{os}-{executor-arch}'
67     project: 'vpp'
68     make-parallel-jobs: '4'
69     make-test-os: 'ubuntu-20.04'
70     stream:
71       - master:
72           branch: 'master'
73           branch-refspec: ''
74       - '2106':
75           branch: 'stable/2106'
76           branch-refspec: ''
77       - '2110':
78           branch: 'stable/2110'
79           branch-refspec: ''
80       - '2202':
81           branch: 'stable/2202'
82           branch-refspec: ''
83     os:
84       - centos8
85       - debian10
86       - ubuntu1804
87       - ubuntu2004
88     executor-arch: 'x86_64'
89     exclude:
90       # OS deprecated in master
91       - stream: 'master'
92         os: 'centos8'
93       - stream: 'master'
94         os: 'ubuntu1804'
95       # OS deprecated on 2110
96       - stream: '2110'
97         os: 'centos8'
98       # OS deprecated on 2202
99       - stream: '2202'
100         os: 'centos8'
101       - stream: '2202'
102         os: 'ubuntu1804'
103 # [end] VPP-X86_64 PROJECT
104
105 # VPP-DEBUG-X86_64 PROJECT
106 #
107 # Currently a periodic job due to intermittent failures.
108 # Limiting branches to master, since other branches
109 # may not get fixes for the intermittent failures.
110 #
111 - project:
112     name: vpp-debug-x86_64
113     jobs:
114       - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
115     project: 'vpp'
116     make-parallel-jobs: '4'
117     make-test-os: 'ubuntu-20.04'
118     comment-trigger-value: 'debug-verify'
119     stream:
120       - master:
121           branch: 'master'
122           branch-refspec: ''
123           # Once per hour
124           periodicity: 'H * * * *'
125     os: 'ubuntu2004'
126     executor-arch: 'x86_64'
127 # [end] VPP-DEBUG-X86_64 PROJECT
128
129 # VPP-GCC-X86_64 PROJECT
130 - project:
131     name: vpp-gcc-x86_64
132     jobs:
133       - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
134     project: 'vpp'
135     executor-arch: 'x86_64'
136     os: 'ubuntu2004'
137     stream:
138       - master:
139           branch: 'master'
140           branch-refspec: ''
141       - '2106':
142           branch: 'stable/2106'
143           branch-refspec: ''
144       - '2110':
145           branch: 'stable/2110'
146           branch-refspec: ''
147       - '2202':
148           branch: 'stable/2202'
149           branch-refspec: ''
150 # [end] VPP-GCC-X86_64 PROJECT
151
152 # VPP-AARCH64 PROJECT
153 #
154 # NOTE: The list of supported branches for each OS are maintained
155 #       in .../ci-management/docker/scripts/lib_vpp.sh
156 #       The job configuration must be derived from that list, thus
157 #       modifications to both should be made at the same time.
158 #       The AARCH64 architecture is in the process of catching up
159 #       with X86_64 in terms of OS coverage.  Thus the jobs are
160 #       a subset of those defined in the docker image build script.
161 - project:
162     name: vpp-aarch64
163     jobs:
164       - 'vpp-verify-{stream}-{os}-{executor-arch}'
165       - 'vpp-merge-{stream}-{os}-{executor-arch}'
166     project: 'vpp'
167     make-parallel-jobs: '16'
168     make-test-os: 'ubuntu-20.04'
169     stream:
170       - master:
171           branch: 'master'
172           branch-refspec: ''
173       - '2106':
174           branch: 'stable/2106'
175           branch-refspec: ''
176       - '2110':
177           branch: 'stable/2110'
178           branch-refspec: ''
179       - '2202':
180           branch: 'stable/2202'
181           branch-refspec: ''
182     os:
183       - centos8
184       - ubuntu1804
185       - ubuntu2004
186     executor-arch: 'aarch64'
187     exclude:
188       # OS deprecated in master
189       - stream: 'master'
190         os: 'centos8'
191       - stream: 'master'
192         os: 'ubuntu1804'
193       # OS deprecated in 2110
194       - stream: '2110'
195         os: 'centos8'
196       # OS deprecated in 2202
197       - stream: '2202'
198         os: 'centos8'
199       - stream: '2202'
200         os: 'ubuntu1804'
201 # [end] VPP-AARCH64 PROJECT
202
203 # VPP-CSIT-VERIFY-DEVICE PROJECT
204 - project:
205     name: vpp-csit-verify-device
206     jobs:
207       - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
208           make-parallel-jobs: '32'
209     project: 'vpp'
210     skip-vote: 'false'
211     stream:
212       - master:
213           branch: 'master'
214           branch-refspec: ''
215       - '2110':
216           branch: 'stable/2110'
217           branch-refspec: ''
218       - '2202':
219           branch: 'stable/2202'
220           branch-refspec: ''
221     testbed-arch:
222       - 1n-skx:
223           os: 'ubuntu2004'
224           executor-arch: 'x86_64'
225       - 1n-tx2:
226           os: 'ubuntu2004'
227           executor-arch: 'aarch64'
228           skip-vote: 'true'
229
230 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
231
232 # VPP-CSIT-VERIFY-PERF PROJECT
233 - project:
234     name: vpp-csit-verify-perf
235     jobs:
236       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
237     project: 'vpp'
238     skip-vote: 'false'
239     stream:
240       - master:
241           branch: 'master'
242           branch-refspec: ''
243       - '2110':
244           branch: 'stable/2110'
245           branch-refspec: ''
246       - '2202':
247           branch: 'stable/2202'
248           branch-refspec: ''
249     testbed-arch:
250       - 2n-icx:
251           os: 'ubuntu2004'
252           executor-arch: 'x86_64'
253       - 2n-clx:
254           os: 'ubuntu2004'
255           executor-arch: 'x86_64'
256       - 2n-skx:
257           os: 'ubuntu2004'
258           executor-arch: 'x86_64'
259       - 2n-zn2:
260           os: 'ubuntu2004'
261           executor-arch: 'x86_64'
262       - 3n-skx:
263           os: 'ubuntu2004'
264           executor-arch: 'x86_64'
265       - 3n-icx:
266           os: 'ubuntu2004'
267           executor-arch: 'x86_64'
268       - 2n-dnv:
269           os: 'ubuntu2004'
270           executor-arch: 'x86_64'
271       - 3n-dnv:
272           os: 'ubuntu2004'
273           executor-arch: 'x86_64'
274       - 3n-tsh:
275           os: 'ubuntu2004'
276           executor-arch: 'aarch64'
277           make-parallel-jobs: '16'
278       - 2n-tx2:
279           os: 'ubuntu2004'
280           executor-arch: 'aarch64'
281           make-parallel-jobs: '16'
282
283 # [end] VPP-CSIT-VERIFY-PERF PROJECT
284
285 # VPP-CSIT-API-CRC PROJECT
286 #
287 # Only master and LTS branches are supported.
288 #
289 - project:
290     name: vpp-csit-api-crc
291     jobs:
292       - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
293     project: 'vpp'
294     executor-arch: 'x86_64'
295     skip-vote: 'false'
296     stream:
297       - master:
298           branch: 'master'
299           branch-refspec: ''
300       - '2110':
301           branch: 'stable/2110'
302           branch-refspec: ''
303       - '2202':
304           branch: 'stable/2202'
305           branch-refspec: ''
306     os: 'ubuntu2004'
307 # [end] VPP-CSIT-API-CRC PROJECT
308
309 # LF RELENG VPP PROJECTS
310 - project:
311     name: vpp-info
312     project-name: vpp
313     jobs:
314       - gerrit-info-yaml-verify
315     build-node: centos7-builder-2c-2g
316     project: vpp
317     branch: master
318
319 - project:
320     name: vpp-view
321     views:
322       - project-view
323     project-name: vpp
324 # [end] LF RELENG VPP PROJECTS
325 # [end] PROJECT DEFINITIONS
326
327 # JOB TEMPLATE DEFINITIONS
328 #
329 # Please keep job templates in the same order as they are referenced
330 # in the project definitions above.
331
332 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
333 - job-template:
334     name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
335
336     project-type: freestyle
337     node: 'builder-{os}-prod-{executor-arch}'
338     concurrent: true
339
340     properties:
341       - lf-infra-properties:
342           build-days-to-keep: "{build-days-to-keep}"
343
344     # Please keep parameters in alphabetical order
345     parameters:
346       - gerrit-parameter:
347           branch: '{branch}'
348       - gerrit-refspec-parameter:
349           refspec: '{branch-refspec}'
350       - os-parameter:
351           os: '{os}'
352       - project-parameter:
353           project: '{project}'
354
355     scm:
356       - gerrit-trigger-scm:
357           credentials-id: 'jenkins-gerrit-credentials'
358           refspec: '$GERRIT_REFSPEC'
359           choosing-strategy: 'gerrit'
360
361     wrappers:
362       - fdio-infra-wrappers:
363           build-timeout: '{build-timeout}'
364       - credentials-binding:
365           - text:
366               credential-id: VppApiCompatNotify
367               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
368
369     triggers:
370       - gerrit:
371           server-name: 'Primary'
372           trigger-on:
373             - patchset-created-event:
374                 exclude-drafts: 'true'
375                 exclude-trivial-rebase: 'false'
376                 exclude-no-code-change: 'false'
377             - draft-published-event
378             - comment-added-contains-event:
379                 comment-contains-value: 'checkstylecheck'
380             - comment-added-contains-event:
381                 comment-contains-value: 'docsonly'
382             - comment-added-contains-event:
383                 comment-contains-value: 'recheck'
384             - comment-added-contains-event:
385                 comment-contains-value: 'reverify'
386             # Following two are to cover missing functions of drafts
387             # going to review status
388             - comment-added-contains-event:
389                 comment-contains-value: 'runtest'
390             - comment-added-contains-event:
391                 comment-contains-value: 'This change is ready for review'
392           projects:
393             - project-compare-type: 'ANT'
394               project-pattern: '{project}'
395               branches:
396                 - branch-compare-type: 'ANT'
397                   branch-pattern: '**/{branch}'
398               file-paths:
399                 - compare-type: REG_EXP
400                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
401               forbidden-file-paths:
402                 - compare-type: REG_EXP
403                   pattern: .*docs\/.*
404                 - compare-type: REG_EXP
405                   pattern: .*extras\/emacs\/.*
406               disable-strict-forbidden-file-verification: 'true'
407           override-votes: true
408           gerrit-build-notbuilt-verified-value: 0
409           gerrit-build-successful-verified-value: 1
410           # yamllint disable-line rule:line-length
411           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
412           # yamllint disable-line rule:line-length
413           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
414           successful-message: 'checkstyle_success'
415           skip-vote:
416             successful: true
417             failed: false
418             unstable: false
419             notbuilt: false
420
421     builders:
422       - shell:
423           !include-raw-escape:
424           - ../scripts/setup_executor_env.sh
425       - shell:
426           !include-raw-escape:
427           - ../scripts/vpp/checkstyle.sh
428       - shell:
429           !include-raw-escape:
430           - ../scripts/vpp/test-checkstyle.sh
431       - shell:
432           !include-raw-escape:
433           - ../scripts/vpp/api-checkstyle.sh
434       - shell:
435           !include-raw-escape:
436           - ../scripts/vpp/commitmsg.sh
437
438     publishers:
439       - fdio-infra-publish
440
441 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
442
443 # VPP-VERIFY JOB TEMPLATE
444 - job-template:
445     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
446
447     project-type: freestyle
448     node: 'builder-{os}-prod-{executor-arch}'
449     concurrent: true
450
451     properties:
452       - lf-infra-properties:
453           build-days-to-keep: "{build-days-to-keep}"
454
455     # Please keep parameters in alphabetical order
456     parameters:
457       - gerrit-parameter:
458           branch: '{branch}'
459       - gerrit-refspec-parameter:
460           refspec: '{branch-refspec}'
461       - make-parallel-jobs-parameter:
462           make-parallel-jobs: '{make-parallel-jobs}'
463       - make-test-os-parameter:
464           make-test-os: '{make-test-os}'
465       - os-parameter:
466           os: '{os}'
467       - project-parameter:
468           project: '{project}'
469       - stream-parameter:
470           stream: '{stream}'
471
472     scm:
473       - gerrit-trigger-scm:
474           credentials-id: 'jenkins-gerrit-credentials'
475           refspec: '$GERRIT_REFSPEC'
476           choosing-strategy: 'gerrit'
477
478     wrappers:
479       - fdio-infra-wrappers:
480           build-timeout: 120
481
482     triggers:
483       - gerrit-trigger-checkstyle:
484           name: '{project}'
485           branch: '{branch}'
486
487     builders:
488       - shell:
489           !include-raw-escape:
490           - ../scripts/setup_executor_env.sh
491       - shell:
492           !include-raw-escape:
493           - ../scripts/setup_vpp_ubuntu_docker_test.sh
494       - shell:
495           !include-raw-escape:
496           - ../scripts/setup_vpp_ext_deps.sh
497       - shell:
498           !include-raw-escape:
499           - ../scripts/vpp/build.sh
500
501     publishers:
502       - fdio-infra-publish
503 # [end] VPP-VERIFY JOB TEMPLATE
504
505 # VPP-DEBUG-VERIFY JOB TEMPLATE
506 - job-template:
507     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
508
509     project-type: freestyle
510     node: 'builder-{os}-prod-{executor-arch}'
511     concurrent: true
512
513     properties:
514       - lf-infra-properties:
515           build-days-to-keep: "{build-days-to-keep}"
516
517     # Please keep parameters in alphabetical order
518     parameters:
519       - gerrit-parameter:
520           branch: '{branch}'
521       - gerrit-refspec-parameter:
522           refspec: '{branch-refspec}'
523       - make-parallel-jobs-parameter:
524           make-parallel-jobs: '{make-parallel-jobs}'
525       - make-test-os-parameter:
526           make-test-os: '{make-test-os}'
527       - os-parameter:
528           os: '{os}'
529       - project-parameter:
530           project: '{project}'
531       - stream-parameter:
532           stream: '{stream}'
533
534     scm:
535       - gerrit-trigger-scm:
536           credentials-id: 'jenkins-gerrit-credentials'
537           refspec: '$GERRIT_REFSPEC'
538           choosing-strategy: 'gerrit'
539
540     wrappers:
541       - fdio-infra-wrappers:
542           build-timeout: '{build-timeout}'
543
544     triggers:
545       - timed: '{periodicity}'
546       - gerrit-trigger-manually-triggered:
547           comment-trigger-value: '{comment-trigger-value}'
548           name: '{project}'
549           branch: '{branch}'
550
551     builders:
552       - shell:
553           !include-raw-escape:
554           - ../scripts/setup_executor_env.sh
555       - shell:
556           !include-raw-escape:
557           - ../scripts/setup_vpp_ubuntu_docker_test.sh
558       - shell:
559           !include-raw-escape:
560           - ../scripts/setup_vpp_ext_deps.sh
561       - shell:
562           !include-raw-escape:
563           - ../scripts/vpp/debug-build.sh
564
565     publishers:
566       - fdio-infra-publish
567 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
568
569 # VPP-MERGE JOB TEMPLATE
570 - job-template:
571     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
572
573     project-type: freestyle
574     node: 'builder-{os}-prod-{executor-arch}'
575
576     properties:
577       - lf-infra-properties:
578           build-days-to-keep: "{build-days-to-keep}"
579
580     # Please keep parameters in alphabetical order
581     parameters:
582       - gerrit-parameter:
583           branch: '{branch}'
584       - make-parallel-jobs-parameter:
585           make-parallel-jobs: '{make-parallel-jobs}'
586       - make-test-os-parameter:
587           make-test-os: '{make-test-os}'
588       - os-parameter:
589           os: '{os}'
590       - project-parameter:
591           project: '{project}'
592       - stream-parameter:
593           stream: '{stream}'
594
595     scm:
596       - gerrit-trigger-scm:
597           credentials-id: 'jenkins-gerrit-credentials'
598           refspec: ''
599           choosing-strategy: 'default'
600
601     wrappers:
602       - fdio-infra-wrappers:
603           build-timeout: 120
604
605     triggers:
606       - gerrit-trigger-patch-merged:
607           name: '{project}'
608           branch: '{branch}'
609
610     builders:
611       - config-file-provider:
612           files:
613             - file-id: '.packagecloud'
614               target: '/root/.packagecloud'
615       - config-file-provider:
616           files:
617             - file-id: 'packagecloud_api'
618               target: '/root/packagecloud_api'
619       - shell:
620           !include-raw-escape:
621           - ../scripts/setup_executor_env.sh
622       - shell:
623           !include-raw-escape:
624           - ../scripts/setup_vpp_ubuntu_docker_test.sh
625       - shell:
626           !include-raw-escape:
627           - ../scripts/setup_vpp_ext_deps.sh
628       - shell:
629           !include-raw-escape:
630           - ../scripts/vpp/build.sh
631       - shell:
632           !include-raw-escape:
633           - ../scripts/packagecloud_push.sh
634
635     publishers:
636       - fdio-infra-publish
637 # [end] VPP-MERGE JOB TEMPLATE
638
639 # VPP-GCC-VERIFY JOB TEMPLATE
640 - job-template:
641     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
642
643     project-type: freestyle
644     node: 'builder-{os}-prod-{executor-arch}'
645     concurrent: true
646
647     properties:
648       - lf-infra-properties:
649           build-days-to-keep: "{build-days-to-keep}"
650
651     # Please keep parameters in alphabetical order
652     parameters:
653       - gerrit-parameter:
654           branch: '{branch}'
655       - gerrit-refspec-parameter:
656           refspec: '{branch-refspec}'
657       - make-parallel-jobs-parameter:
658           make-parallel-jobs: '{make-parallel-jobs}'
659       - os-parameter:
660           os: '{os}'
661       - project-parameter:
662           project: '{project}'
663       - stream-parameter:
664           stream: '{stream}'
665
666     scm:
667       - gerrit-trigger-scm:
668           credentials-id: 'jenkins-gerrit-credentials'
669           refspec: '$GERRIT_REFSPEC'
670           choosing-strategy: 'gerrit'
671
672     wrappers:
673       - fdio-infra-wrappers:
674           build-timeout: 120
675
676     triggers:
677       - gerrit-trigger-checkstyle:
678           name: '{project}'
679           branch: '{branch}'
680
681     builders:
682       - shell:
683           !include-raw-escape:
684           - ../scripts/setup_executor_env.sh
685       - shell:
686           !include-raw-escape:
687           - ../scripts/setup_vpp_ubuntu_docker_test.sh
688       - shell:
689           !include-raw-escape:
690           - ../scripts/setup_vpp_ext_deps.sh
691       - shell:
692           !include-raw-escape:
693           - ../scripts/vpp/gcc-build.sh
694
695     publishers:
696       - fdio-infra-publish
697 # [end] VPP-GCC-VERIFY JOB TEMPLATE
698
699 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
700 - job-template:
701     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
702     description: |
703       <ul>
704           <li>executor
705               <ul>
706                   <li>csit-builder-{os}-prod-{executor-arch}
707               </ul>
708           <li>testbed architecture
709               <ul>
710                   <li>{testbed-arch}
711               </ul>
712       </ul>
713
714     project-type: freestyle
715     node: 'csit-builder-{os}-prod-{executor-arch}'
716     concurrent: true
717     latest-only: false
718
719     properties:
720       - lf-infra-properties:
721           build-days-to-keep: "{build-days-to-keep}"
722
723     # Please keep parameters in alphabetical order
724     parameters:
725       - gerrit-csit-refspec-parameter
726       - gerrit-event-comment-text-parameter
727       - gerrit-event-type-parameter
728       - gerrit-parameter:
729           branch: '{branch}'
730       - gerrit-refspec-parameter:
731           refspec: '{branch-refspec}'
732       - make-parallel-jobs-parameter:
733           make-parallel-jobs: '{make-parallel-jobs}'
734       - os-parameter:
735           os: '{os}'
736       - project-parameter:
737           project: '{project}'
738       - stream-parameter:
739           stream: '{stream}'
740
741     scm:
742       - gerrit-trigger-scm:
743           credentials-id: 'jenkins-gerrit-credentials'
744           refspec: '$GERRIT_REFSPEC'
745           choosing-strategy: 'gerrit'
746
747     wrappers:
748       - fdio-infra-wrappers:
749           build-timeout: '90'
750
751     triggers:
752       - 'gerrit-trigger-vpp-csit-devicetest-full':
753           name: '{project}'
754           branch: '{branch}'
755           skip-vote: '{skip-vote}'
756
757     builders:
758       - shell:
759           !include-raw-escape:
760           - ../scripts/setup_executor_env.sh
761       - shell:
762           !include-raw-escape:
763           - ../scripts/setup_vpp_ubuntu_docker_test.sh
764       - shell:
765           !include-raw-escape:
766           - ../scripts/setup_vpp_ext_deps.sh
767       - shell:
768           !include-raw-escape:
769           - ../scripts/vpp/csit-device.sh
770
771     publishers:
772       - fdio-infra-publish
773 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
774
775 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
776 - job-template:
777     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
778     description: |
779       <ul>
780           <li>executor
781               <ul>
782                   <li>builder-{os}-prod-{executor-arch}
783               </ul>
784           <li>testbed architecture
785               <ul>
786                   <li>{testbed-arch}
787               </ul>
788           <li>Objective
789           Contrary to csit-vpp job, this also measures the parent performance,
790           and fails if performance regression is detected.
791           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
792       </ul>
793
794     project-type: freestyle
795     node: 'builder-{os}-prod-{executor-arch}'
796     concurrent: true
797     latest-only: false
798
799     properties:
800       - lf-infra-properties:
801           build-days-to-keep: "{build-days-to-keep}"
802
803     # Please keep parameters in alphabetical order
804     parameters:
805       - csit-perf-trial-duration-parameter:
806           csit-perf-trial-duration: "10.0"
807       - csit-perf-trial-multiplicity-parameter:
808           csit-perf-trial-multiplicity: "5"
809       - gerrit-csit-refspec-parameter
810       - gerrit-event-comment-text-parameter
811       - gerrit-event-type-parameter
812       - gerrit-refspec-parameter:
813           refspec: '{branch-refspec}'
814       - gerrit-parameter:
815           branch: '{branch}'
816       - make-parallel-jobs-parameter:
817           make-parallel-jobs: '{make-parallel-jobs}'
818       - os-parameter:
819           os: '{os}'
820       - project-parameter:
821           project: '{project}'
822       - stream-parameter:
823           stream: '{stream}'
824
825     scm:
826       - gerrit-trigger-scm:
827           credentials-id: 'jenkins-gerrit-credentials'
828           refspec: '$GERRIT_REFSPEC'
829           choosing-strategy: 'gerrit'
830
831     wrappers:
832       - fdio-infra-wrappers-non-activity-timeout:
833           build-timeout: 300
834
835     triggers:
836       - gerrit-trigger-csit-perftest:
837           project: '{project}'
838           branch: '{branch}'
839           trigger-word: 'perftest-{testbed-arch}'
840           skip-vote: true
841
842     builders:
843       - shell:
844           !include-raw-escape:
845           - ../scripts/setup_executor_env.sh
846       - shell:
847           !include-raw-escape:
848           - ../scripts/setup_vpp_ubuntu_docker_test.sh
849       - shell:
850           !include-raw-escape:
851           - ../scripts/setup_vpp_ext_deps.sh
852       - shell:
853           !include-raw-escape:
854           - ../scripts/vpp/csit-perf.sh
855
856     publishers:
857       - postbuildscript:
858           # Can be removed when all CSIT branches use correct archive directory.
859           builders:
860             - build-on:
861                 - ABORTED
862                 - FAILURE
863                 - NOT_BUILT
864                 - SUCCESS
865                 - UNSTABLE
866               build-steps:
867                 - shell:
868                     !include-raw-escape:
869                     - ../scripts/vpp/copy_archives.sh
870       - robot-report:
871           output-path: 'archives/csit_current/0/'
872
873       - fdio-infra-publish
874 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
875
876 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
877 - job-template:
878     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
879
880     project-type: freestyle
881     node: 'builder-{os}-prod-{executor-arch}'
882     concurrent: true
883     latest-only: false
884
885     properties:
886       - lf-infra-properties:
887           build-days-to-keep: "{build-days-to-keep}"
888
889     # Please keep parameters in alphabetical order
890     parameters:
891       # Not sure whether not failing has any useful usage,
892       # but it does not hurt to have some flexibility for future.
893       - csit-fail-on-crc-mismatch-parameter:
894           fail-on-crc-mismatch: 'True'
895       - gerrit-csit-refspec-parameter
896       - gerrit-parameter:
897           branch: '{branch}'
898       - gerrit-refspec-parameter:
899           refspec: '{branch-refspec}'
900       - project-parameter:
901           project: '{project}'
902       - stream-parameter:
903           stream: '{stream}'
904
905     scm:
906       - gerrit-trigger-scm:
907           credentials-id: 'jenkins-gerrit-credentials'
908           refspec: '$GERRIT_REFSPEC'
909           choosing-strategy: 'gerrit'
910
911     wrappers:
912       - fdio-infra-wrappers-non-activity-timeout:
913           build-timeout: 300
914
915     triggers:
916       - gerrit-trigger-checkstyle:
917           name: '{project}'
918           branch: '{branch}'
919
920     builders:
921       - shell:
922           !include-raw-escape:
923           - ../scripts/setup_executor_env.sh
924       - shell:
925           !include-raw-escape:
926           - ../scripts/setup_vpp_ubuntu_docker_test.sh
927       - shell:
928           !include-raw-escape:
929           - ../scripts/vpp/check_crc.sh
930     # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
931
932     publishers:
933       - fdio-infra-publish
934 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
935 # [end] JOB TEMPLATE DEFINITIONS