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