Changes for VPP 22.02 Release
[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       - '2106':
216           branch: 'stable/2106'
217           branch-refspec: ''
218       - '2110':
219           branch: 'stable/2110'
220           branch-refspec: ''
221       - '2202':
222           branch: 'stable/2202'
223           branch-refspec: ''
224     testbed-arch:
225       - 1n-skx:
226           os: 'ubuntu2004'
227           executor-arch: 'x86_64'
228       - 1n-tx2:
229           os: 'ubuntu2004'
230           executor-arch: 'aarch64'
231           skip-vote: 'true'
232
233 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
234
235 # VPP-CSIT-VERIFY-PERF PROJECT
236 - project:
237     name: vpp-csit-verify-perf
238     jobs:
239       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
240     project: 'vpp'
241     skip-vote: 'false'
242     stream:
243       - master:
244           branch: 'master'
245           branch-refspec: ''
246       - '2106':
247           branch: 'stable/2106'
248           branch-refspec: ''
249       - '2110':
250           branch: 'stable/2110'
251           branch-refspec: ''
252       - '2202':
253           branch: 'stable/2202'
254           branch-refspec: ''
255     testbed-arch:
256       - 2n-clx:
257           os: 'ubuntu2004'
258           executor-arch: 'x86_64'
259       - 2n-skx:
260           os: 'ubuntu2004'
261           executor-arch: 'x86_64'
262       - 2n-zn2:
263           os: 'ubuntu2004'
264           executor-arch: 'x86_64'
265       - 3n-skx:
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       - '2106':
301           branch: 'stable/2106'
302           branch-refspec: ''
303       - '2110':
304           branch: 'stable/2110'
305           branch-refspec: ''
306       - '2202':
307           branch: 'stable/2202'
308           branch-refspec: ''
309     os: 'ubuntu2004'
310 # [end] VPP-CSIT-API-CRC PROJECT
311
312 # LF RELENG VPP PROJECTS
313 - project:
314     name: vpp-info
315     project-name: vpp
316     jobs:
317       - gerrit-info-yaml-verify
318     build-node: centos7-builder-2c-2g
319     project: vpp
320     branch: master
321
322 - project:
323     name: vpp-view
324     views:
325       - project-view
326     project-name: vpp
327 # [end] LF RELENG VPP PROJECTS
328 # [end] PROJECT DEFINITIONS
329
330 # JOB TEMPLATE DEFINITIONS
331 #
332 # Please keep job templates in the same order as they are referenced
333 # in the project definitions above.
334
335 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
336 - job-template:
337     name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
338
339     project-type: freestyle
340     node: 'builder-{os}-prod-{executor-arch}'
341     concurrent: true
342
343     properties:
344       - lf-infra-properties:
345           build-days-to-keep: "{build-days-to-keep}"
346
347     # Please keep parameters in alphabetical order
348     parameters:
349       - gerrit-parameter:
350           branch: '{branch}'
351       - gerrit-refspec-parameter:
352           refspec: '{branch-refspec}'
353       - os-parameter:
354           os: '{os}'
355       - project-parameter:
356           project: '{project}'
357
358     scm:
359       - gerrit-trigger-scm:
360           credentials-id: 'jenkins-gerrit-credentials'
361           refspec: '$GERRIT_REFSPEC'
362           choosing-strategy: 'gerrit'
363
364     wrappers:
365       - fdio-infra-wrappers:
366           build-timeout: '{build-timeout}'
367       - credentials-binding:
368           - text:
369               credential-id: VppApiCompatNotify
370               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
371
372     triggers:
373       - gerrit:
374           server-name: 'Primary'
375           trigger-on:
376             - patchset-created-event:
377                 exclude-drafts: 'true'
378                 exclude-trivial-rebase: 'false'
379                 exclude-no-code-change: 'false'
380             - draft-published-event
381             - comment-added-contains-event:
382                 comment-contains-value: 'checkstylecheck'
383             - comment-added-contains-event:
384                 comment-contains-value: 'docsonly'
385             - comment-added-contains-event:
386                 comment-contains-value: 'recheck'
387             - comment-added-contains-event:
388                 comment-contains-value: 'reverify'
389             # Following two are to cover missing functions of drafts
390             # going to review status
391             - comment-added-contains-event:
392                 comment-contains-value: 'runtest'
393             - comment-added-contains-event:
394                 comment-contains-value: 'This change is ready for review'
395           projects:
396             - project-compare-type: 'ANT'
397               project-pattern: '{project}'
398               branches:
399                 - branch-compare-type: 'ANT'
400                   branch-pattern: '**/{branch}'
401               file-paths:
402                 - compare-type: REG_EXP
403                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
404               forbidden-file-paths:
405                 - compare-type: REG_EXP
406                   pattern: .*docs\/.*
407                 - compare-type: REG_EXP
408                   pattern: .*extras\/emacs\/.*
409               disable-strict-forbidden-file-verification: 'true'
410           override-votes: true
411           gerrit-build-notbuilt-verified-value: 0
412           gerrit-build-successful-verified-value: 1
413           # yamllint disable-line rule:line-length
414           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
415           # yamllint disable-line rule:line-length
416           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
417           successful-message: 'checkstyle_success'
418           skip-vote:
419             successful: true
420             failed: false
421             unstable: false
422             notbuilt: false
423
424     builders:
425       - shell:
426           !include-raw-escape:
427           - ../scripts/setup_executor_env.sh
428       - shell:
429           !include-raw-escape:
430           - ../scripts/vpp/checkstyle.sh
431       - shell:
432           !include-raw-escape:
433           - ../scripts/vpp/test-checkstyle.sh
434       - shell:
435           !include-raw-escape:
436           - ../scripts/vpp/api-checkstyle.sh
437       - shell:
438           !include-raw-escape:
439           - ../scripts/vpp/commitmsg.sh
440
441     publishers:
442       - fdio-infra-publish
443
444 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
445
446 # VPP-VERIFY JOB TEMPLATE
447 - job-template:
448     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
449
450     project-type: freestyle
451     node: 'builder-{os}-prod-{executor-arch}'
452     concurrent: true
453
454     properties:
455       - lf-infra-properties:
456           build-days-to-keep: "{build-days-to-keep}"
457
458     # Please keep parameters in alphabetical order
459     parameters:
460       - gerrit-parameter:
461           branch: '{branch}'
462       - gerrit-refspec-parameter:
463           refspec: '{branch-refspec}'
464       - make-parallel-jobs-parameter:
465           make-parallel-jobs: '{make-parallel-jobs}'
466       - make-test-os-parameter:
467           make-test-os: '{make-test-os}'
468       - os-parameter:
469           os: '{os}'
470       - project-parameter:
471           project: '{project}'
472       - stream-parameter:
473           stream: '{stream}'
474
475     scm:
476       - gerrit-trigger-scm:
477           credentials-id: 'jenkins-gerrit-credentials'
478           refspec: '$GERRIT_REFSPEC'
479           choosing-strategy: 'gerrit'
480
481     wrappers:
482       - fdio-infra-wrappers:
483           build-timeout: 120
484
485     triggers:
486       - gerrit-trigger-checkstyle:
487           name: '{project}'
488           branch: '{branch}'
489
490     builders:
491       - shell:
492           !include-raw-escape:
493           - ../scripts/setup_executor_env.sh
494       - shell:
495           !include-raw-escape:
496           - ../scripts/setup_vpp_ubuntu_docker_test.sh
497       - shell:
498           !include-raw-escape:
499           - ../scripts/setup_vpp_ext_deps.sh
500       - shell:
501           !include-raw-escape:
502           - ../scripts/vpp/build.sh
503
504     publishers:
505       - fdio-infra-publish
506 # [end] VPP-VERIFY JOB TEMPLATE
507
508 # VPP-DEBUG-VERIFY JOB TEMPLATE
509 - job-template:
510     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
511
512     project-type: freestyle
513     node: 'builder-{os}-prod-{executor-arch}'
514     concurrent: true
515
516     properties:
517       - lf-infra-properties:
518           build-days-to-keep: "{build-days-to-keep}"
519
520     # Please keep parameters in alphabetical order
521     parameters:
522       - gerrit-parameter:
523           branch: '{branch}'
524       - gerrit-refspec-parameter:
525           refspec: '{branch-refspec}'
526       - make-parallel-jobs-parameter:
527           make-parallel-jobs: '{make-parallel-jobs}'
528       - make-test-os-parameter:
529           make-test-os: '{make-test-os}'
530       - os-parameter:
531           os: '{os}'
532       - project-parameter:
533           project: '{project}'
534       - stream-parameter:
535           stream: '{stream}'
536
537     scm:
538       - gerrit-trigger-scm:
539           credentials-id: 'jenkins-gerrit-credentials'
540           refspec: '$GERRIT_REFSPEC'
541           choosing-strategy: 'gerrit'
542
543     wrappers:
544       - fdio-infra-wrappers:
545           build-timeout: '{build-timeout}'
546
547     triggers:
548       - timed: '{periodicity}'
549       - gerrit-trigger-manually-triggered:
550           comment-trigger-value: '{comment-trigger-value}'
551           name: '{project}'
552           branch: '{branch}'
553
554     builders:
555       - shell:
556           !include-raw-escape:
557           - ../scripts/setup_executor_env.sh
558       - shell:
559           !include-raw-escape:
560           - ../scripts/setup_vpp_ubuntu_docker_test.sh
561       - shell:
562           !include-raw-escape:
563           - ../scripts/setup_vpp_ext_deps.sh
564       - shell:
565           !include-raw-escape:
566           - ../scripts/vpp/debug-build.sh
567
568     publishers:
569       - fdio-infra-publish
570 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
571
572 # VPP-MERGE JOB TEMPLATE
573 - job-template:
574     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
575
576     project-type: freestyle
577     node: 'builder-{os}-prod-{executor-arch}'
578
579     properties:
580       - lf-infra-properties:
581           build-days-to-keep: "{build-days-to-keep}"
582
583     # Please keep parameters in alphabetical order
584     parameters:
585       - gerrit-parameter:
586           branch: '{branch}'
587       - make-parallel-jobs-parameter:
588           make-parallel-jobs: '{make-parallel-jobs}'
589       - make-test-os-parameter:
590           make-test-os: '{make-test-os}'
591       - os-parameter:
592           os: '{os}'
593       - project-parameter:
594           project: '{project}'
595       - stream-parameter:
596           stream: '{stream}'
597
598     scm:
599       - gerrit-trigger-scm:
600           credentials-id: 'jenkins-gerrit-credentials'
601           refspec: ''
602           choosing-strategy: 'default'
603
604     wrappers:
605       - fdio-infra-wrappers:
606           build-timeout: 120
607
608     triggers:
609       - gerrit-trigger-patch-merged:
610           name: '{project}'
611           branch: '{branch}'
612
613     builders:
614       - config-file-provider:
615           files:
616             - file-id: '.packagecloud'
617               target: '/root/.packagecloud'
618       - config-file-provider:
619           files:
620             - file-id: 'packagecloud_api'
621               target: '/root/packagecloud_api'
622       - shell:
623           !include-raw-escape:
624           - ../scripts/setup_executor_env.sh
625       - shell:
626           !include-raw-escape:
627           - ../scripts/setup_vpp_ubuntu_docker_test.sh
628       - shell:
629           !include-raw-escape:
630           - ../scripts/setup_vpp_ext_deps.sh
631       - shell:
632           !include-raw-escape:
633           - ../scripts/vpp/build.sh
634       - shell:
635           !include-raw-escape:
636           - ../scripts/packagecloud_push.sh
637
638     publishers:
639       - fdio-infra-publish
640 # [end] VPP-MERGE JOB TEMPLATE
641
642 # VPP-GCC-VERIFY JOB TEMPLATE
643 - job-template:
644     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
645
646     project-type: freestyle
647     node: 'builder-{os}-prod-{executor-arch}'
648     concurrent: true
649
650     properties:
651       - lf-infra-properties:
652           build-days-to-keep: "{build-days-to-keep}"
653
654     # Please keep parameters in alphabetical order
655     parameters:
656       - gerrit-parameter:
657           branch: '{branch}'
658       - gerrit-refspec-parameter:
659           refspec: '{branch-refspec}'
660       - make-parallel-jobs-parameter:
661           make-parallel-jobs: '{make-parallel-jobs}'
662       - os-parameter:
663           os: '{os}'
664       - project-parameter:
665           project: '{project}'
666       - stream-parameter:
667           stream: '{stream}'
668
669     scm:
670       - gerrit-trigger-scm:
671           credentials-id: 'jenkins-gerrit-credentials'
672           refspec: '$GERRIT_REFSPEC'
673           choosing-strategy: 'gerrit'
674
675     wrappers:
676       - fdio-infra-wrappers:
677           build-timeout: 120
678
679     triggers:
680       - gerrit-trigger-checkstyle:
681           name: '{project}'
682           branch: '{branch}'
683
684     builders:
685       - shell:
686           !include-raw-escape:
687           - ../scripts/setup_executor_env.sh
688       - shell:
689           !include-raw-escape:
690           - ../scripts/setup_vpp_ubuntu_docker_test.sh
691       - shell:
692           !include-raw-escape:
693           - ../scripts/setup_vpp_ext_deps.sh
694       - shell:
695           !include-raw-escape:
696           - ../scripts/vpp/gcc-build.sh
697
698     publishers:
699       - fdio-infra-publish
700 # [end] VPP-GCC-VERIFY JOB TEMPLATE
701
702 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
703 - job-template:
704     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
705     description: |
706       <ul>
707           <li>executor
708               <ul>
709                   <li>csit-builder-{os}-prod-{executor-arch}
710               </ul>
711           <li>testbed architecture
712               <ul>
713                   <li>{testbed-arch}
714               </ul>
715       </ul>
716
717     project-type: freestyle
718     node: 'csit-builder-{os}-prod-{executor-arch}'
719     concurrent: true
720     latest-only: false
721
722     properties:
723       - lf-infra-properties:
724           build-days-to-keep: "{build-days-to-keep}"
725
726     # Please keep parameters in alphabetical order
727     parameters:
728       - gerrit-csit-refspec-parameter
729       - gerrit-event-comment-text-parameter
730       - gerrit-event-type-parameter
731       - gerrit-parameter:
732           branch: '{branch}'
733       - gerrit-refspec-parameter:
734           refspec: '{branch-refspec}'
735       - make-parallel-jobs-parameter:
736           make-parallel-jobs: '{make-parallel-jobs}'
737       - os-parameter:
738           os: '{os}'
739       - project-parameter:
740           project: '{project}'
741       - stream-parameter:
742           stream: '{stream}'
743
744     scm:
745       - gerrit-trigger-scm:
746           credentials-id: 'jenkins-gerrit-credentials'
747           refspec: '$GERRIT_REFSPEC'
748           choosing-strategy: 'gerrit'
749
750     wrappers:
751       - fdio-infra-wrappers:
752           build-timeout: '90'
753
754     triggers:
755       - 'gerrit-trigger-vpp-csit-devicetest-full':
756           name: '{project}'
757           branch: '{branch}'
758           skip-vote: '{skip-vote}'
759
760     builders:
761       - shell:
762           !include-raw-escape:
763           - ../scripts/setup_executor_env.sh
764       - shell:
765           !include-raw-escape:
766           - ../scripts/setup_vpp_ubuntu_docker_test.sh
767       - shell:
768           !include-raw-escape:
769           - ../scripts/setup_vpp_ext_deps.sh
770       - shell:
771           !include-raw-escape:
772           - ../scripts/vpp/csit-device.sh
773
774     publishers:
775       - fdio-infra-publish
776 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
777
778 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
779 - job-template:
780     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
781     description: |
782       <ul>
783           <li>executor
784               <ul>
785                   <li>builder-{os}-prod-{executor-arch}
786               </ul>
787           <li>testbed architecture
788               <ul>
789                   <li>{testbed-arch}
790               </ul>
791           <li>Objective
792           Contrary to csit-vpp job, this also measures the parent performance,
793           and fails if performance regression is detected.
794           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
795       </ul>
796
797     project-type: freestyle
798     node: 'builder-{os}-prod-{executor-arch}'
799     concurrent: true
800     latest-only: false
801
802     properties:
803       - lf-infra-properties:
804           build-days-to-keep: "{build-days-to-keep}"
805
806     # Please keep parameters in alphabetical order
807     parameters:
808       - csit-perf-trial-duration-parameter:
809           csit-perf-trial-duration: "10.0"
810       - csit-perf-trial-multiplicity-parameter:
811           csit-perf-trial-multiplicity: "5"
812       - gerrit-csit-refspec-parameter
813       - gerrit-event-comment-text-parameter
814       - gerrit-event-type-parameter
815       - gerrit-refspec-parameter:
816           refspec: '{branch-refspec}'
817       - gerrit-parameter:
818           branch: '{branch}'
819       - make-parallel-jobs-parameter:
820           make-parallel-jobs: '{make-parallel-jobs}'
821       - os-parameter:
822           os: '{os}'
823       - project-parameter:
824           project: '{project}'
825       - stream-parameter:
826           stream: '{stream}'
827
828     scm:
829       - gerrit-trigger-scm:
830           credentials-id: 'jenkins-gerrit-credentials'
831           refspec: '$GERRIT_REFSPEC'
832           choosing-strategy: 'gerrit'
833
834     wrappers:
835       - fdio-infra-wrappers-non-activity-timeout:
836           build-timeout: 300
837
838     triggers:
839       - gerrit-trigger-csit-perftest:
840           project: '{project}'
841           branch: '{branch}'
842           trigger-word: 'perftest-{testbed-arch}'
843           skip-vote: true
844
845     builders:
846       - shell:
847           !include-raw-escape:
848           - ../scripts/setup_executor_env.sh
849       - shell:
850           !include-raw-escape:
851           - ../scripts/setup_vpp_ubuntu_docker_test.sh
852       - shell:
853           !include-raw-escape:
854           - ../scripts/setup_vpp_ext_deps.sh
855       - shell:
856           !include-raw-escape:
857           - ../scripts/vpp/csit-perf.sh
858
859     publishers:
860       - postbuildscript:
861           # Can be removed when all CSIT branches use correct archive directory.
862           builders:
863             - build-on:
864                 - ABORTED
865                 - FAILURE
866                 - NOT_BUILT
867                 - SUCCESS
868                 - UNSTABLE
869               build-steps:
870                 - shell:
871                     !include-raw-escape:
872                     - ../scripts/vpp/copy_archives.sh
873       - robot-report:
874           output-path: 'archives/csit_current/0/'
875
876       - fdio-infra-publish
877 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
878
879 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
880 - job-template:
881     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
882
883     project-type: freestyle
884     node: 'builder-{os}-prod-{executor-arch}'
885     concurrent: true
886     latest-only: false
887
888     properties:
889       - lf-infra-properties:
890           build-days-to-keep: "{build-days-to-keep}"
891
892     # Please keep parameters in alphabetical order
893     parameters:
894       # Not sure whether not failing has any useful usage,
895       # but it does not hurt to have some flexibility for future.
896       - csit-fail-on-crc-mismatch-parameter:
897           fail-on-crc-mismatch: 'True'
898       - gerrit-csit-refspec-parameter
899       - gerrit-parameter:
900           branch: '{branch}'
901       - gerrit-refspec-parameter:
902           refspec: '{branch-refspec}'
903       - project-parameter:
904           project: '{project}'
905       - stream-parameter:
906           stream: '{stream}'
907
908     scm:
909       - gerrit-trigger-scm:
910           credentials-id: 'jenkins-gerrit-credentials'
911           refspec: '$GERRIT_REFSPEC'
912           choosing-strategy: 'gerrit'
913
914     wrappers:
915       - fdio-infra-wrappers-non-activity-timeout:
916           build-timeout: 300
917
918     triggers:
919       - gerrit-trigger-checkstyle:
920           name: '{project}'
921           branch: '{branch}'
922
923     builders:
924       - shell:
925           !include-raw-escape:
926           - ../scripts/setup_executor_env.sh
927       - shell:
928           !include-raw-escape:
929           - ../scripts/setup_vpp_ubuntu_docker_test.sh
930       - shell:
931           !include-raw-escape:
932           - ../scripts/vpp/check_crc.sh
933     # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
934
935     publishers:
936       - fdio-infra-publish
937 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
938 # [end] JOB TEMPLATE DEFINITIONS