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