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