Add docs-spell to vpp checkstyle job
[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       - '2110':
42           branch: 'stable/2110'
43           branch-refspec: ''
44       - '2202':
45           branch: 'stable/2202'
46           branch-refspec: ''
47       - '2206':
48           branch: 'stable/2206'
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       - '2110':
75           branch: 'stable/2110'
76           branch-refspec: ''
77       - '2202':
78           branch: 'stable/2202'
79           branch-refspec: ''
80       - '2206':
81           branch: 'stable/2206'
82           branch-refspec: ''
83     os:
84       - debian10
85       - debian11
86       - ubuntu1804
87       - ubuntu2004
88     executor-arch: 'x86_64'
89     exclude:
90       # OS deprecated on master
91       - stream: 'master'
92         os: 'ubuntu1804'
93       # OS deprecated on 2202
94       - stream: '2202'
95         os: 'ubuntu1804'
96       # OS deprecated on 2206
97       - stream: '2206'
98         os: 'ubuntu1804'
99       # os added in master
100       - stream: '2106'
101         os: 'debian11'
102       - stream: '2110'
103         os: 'debian11'
104       - stream: '2202'
105         os: 'debian11'
106 # [end] VPP-X86_64 PROJECT
107
108 # VPP-DEBUG-X86_64 PROJECT
109 #
110 # Currently a periodic job due to intermittent failures.
111 # Limiting branches to master, since other branches
112 # may not get fixes for the intermittent failures.
113 #
114 - project:
115     name: vpp-debug-x86_64
116     jobs:
117       - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
118     project: 'vpp'
119     make-parallel-jobs: '4'
120     make-test-os: 'ubuntu-20.04'
121     comment-trigger-value: 'debug-verify'
122     stream:
123       - master:
124           branch: 'master'
125           branch-refspec: ''
126           # Once per hour
127           periodicity: 'H * * * *'
128     os: 'ubuntu2004'
129     executor-arch: 'x86_64'
130 # [end] VPP-DEBUG-X86_64 PROJECT
131
132 # VPP-GCC-X86_64 PROJECT
133 - project:
134     name: vpp-gcc-x86_64
135     jobs:
136       - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
137     project: 'vpp'
138     executor-arch: 'x86_64'
139     os: 'ubuntu2004'
140     stream:
141       - master:
142           branch: 'master'
143           branch-refspec: ''
144       - '2110':
145           branch: 'stable/2110'
146           branch-refspec: ''
147       - '2202':
148           branch: 'stable/2202'
149           branch-refspec: ''
150       - '2206':
151           branch: 'stable/2206'
152           branch-refspec: ''
153 # [end] VPP-GCC-X86_64 PROJECT
154
155 # VPP-AARCH64 PROJECT
156 #
157 # NOTE: The list of supported branches for each OS are maintained
158 #       in .../ci-management/docker/scripts/lib_vpp.sh
159 #       The job configuration must be derived from that list, thus
160 #       modifications to both should be made at the same time.
161 #       The AARCH64 architecture is in the process of catching up
162 #       with X86_64 in terms of OS coverage.  Thus the jobs are
163 #       a subset of those defined in the docker image build script.
164 - project:
165     name: vpp-aarch64
166     jobs:
167       - 'vpp-verify-{stream}-{os}-{executor-arch}'
168       - 'vpp-merge-{stream}-{os}-{executor-arch}'
169     project: 'vpp'
170     make-parallel-jobs: '16'
171     make-test-os: 'ubuntu-20.04'
172     stream:
173       - master:
174           branch: 'master'
175           branch-refspec: ''
176       - '2110':
177           branch: 'stable/2110'
178           branch-refspec: ''
179       - '2202':
180           branch: 'stable/2202'
181           branch-refspec: ''
182       - '2206':
183           branch: 'stable/2206'
184           branch-refspec: ''
185     os:
186       - ubuntu1804
187       - ubuntu2004
188     executor-arch: 'aarch64'
189     exclude:
190       # OS deprecated on master
191       - stream: 'master'
192         os: 'ubuntu1804'
193       # OS deprecated on 2202
194       - stream: '2202'
195         os: 'ubuntu1804'
196       # OS deprecated on 2206
197       - stream: '2206'
198         os: 'ubuntu1804'
199 # [end] VPP-AARCH64 PROJECT
200
201 # VPP-CSIT-VERIFY-DEVICE PROJECT
202 - project:
203     name: vpp-csit-verify-device
204     jobs:
205       - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
206           make-parallel-jobs: '32'
207     project: 'vpp'
208     skip-vote: 'false'
209     stream:
210       - master:
211           branch: 'master'
212           branch-refspec: ''
213       - '2202':
214           branch: 'stable/2202'
215           branch-refspec: ''
216       - '2206':
217           branch: 'stable/2206'
218           branch-refspec: ''
219     testbed-arch:
220       - 1n-skx:
221           os: 'ubuntu2004'
222           executor-arch: 'x86_64'
223       - 1n-tx2:
224           os: 'ubuntu2004'
225           executor-arch: 'aarch64'
226           skip-vote: 'true'
227
228 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
229
230 # VPP-CSIT-VERIFY-PERF PROJECT
231 - project:
232     name: vpp-csit-verify-perf
233     jobs:
234       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
235     project: 'vpp'
236     skip-vote: 'false'
237     stream:
238       - master:
239           branch: 'master'
240           branch-refspec: ''
241       - '2202':
242           branch: 'stable/2202'
243           branch-refspec: ''
244       - '2206':
245           branch: 'stable/2206'
246           branch-refspec: ''
247     testbed-arch:
248       - 2n-icx:
249           os: 'ubuntu2004'
250           executor-arch: 'x86_64'
251       - 2n-clx:
252           os: 'ubuntu2004'
253           executor-arch: 'x86_64'
254       - 2n-skx:
255           os: 'ubuntu2004'
256           executor-arch: 'x86_64'
257       - 2n-zn2:
258           os: 'ubuntu2004'
259           executor-arch: 'x86_64'
260       - 3n-skx:
261           os: 'ubuntu2004'
262           executor-arch: 'x86_64'
263       - 3n-icx:
264           os: 'ubuntu2004'
265           executor-arch: 'x86_64'
266       - 2n-dnv:
267           os: 'ubuntu2004'
268           executor-arch: 'x86_64'
269       - 3n-dnv:
270           os: 'ubuntu2004'
271           executor-arch: 'x86_64'
272       - 3n-tsh:
273           os: 'ubuntu2004'
274           executor-arch: 'aarch64'
275           make-parallel-jobs: '16'
276       - 3n-alt:
277           os: 'ubuntu2004'
278           executor-arch: 'aarch64'
279           make-parallel-jobs: '16'
280       - 2n-tx2:
281           os: 'ubuntu2004'
282           executor-arch: 'aarch64'
283           make-parallel-jobs: '16'
284
285 # [end] VPP-CSIT-VERIFY-PERF PROJECT
286
287 # VPP-CSIT-API-CRC PROJECT
288 #
289 # Only master and LTS branches are supported.
290 #
291 - project:
292     name: vpp-csit-api-crc
293     jobs:
294       - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
295     project: 'vpp'
296     executor-arch: 'x86_64'
297     skip-vote: 'false'
298     stream:
299       - master:
300           branch: 'master'
301           branch-refspec: ''
302       - '2202':
303           branch: 'stable/2202'
304           branch-refspec: ''
305       - '2206':
306           branch: 'stable/2206'
307           branch-refspec: ''
308     os: 'ubuntu2004'
309 # [end] VPP-CSIT-API-CRC PROJECT
310
311 # LF RELENG VPP PROJECTS
312 - project:
313     name: vpp-info
314     project-name: vpp
315     jobs:
316       - gerrit-info-yaml-verify
317     build-node: centos7-builder-2c-2g
318     project: vpp
319     branch: master
320
321 - project:
322     name: vpp-view
323     views:
324       - project-view
325     project-name: vpp
326 # [end] LF RELENG VPP PROJECTS
327 # [end] PROJECT DEFINITIONS
328
329 # JOB TEMPLATE DEFINITIONS
330 #
331 # Please keep job templates in the same order as they are referenced
332 # in the project definitions above.
333
334 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
335 - job-template:
336     name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
337
338     project-type: freestyle
339     node: 'builder-{os}-prod-{executor-arch}'
340     concurrent: true
341
342     properties:
343       - lf-infra-properties:
344           build-days-to-keep: "{build-days-to-keep}"
345
346     # Please keep parameters in alphabetical order
347     parameters:
348       - gerrit-parameter:
349           branch: '{branch}'
350       - gerrit-refspec-parameter:
351           refspec: '{branch-refspec}'
352       - os-parameter:
353           os: '{os}'
354       - project-parameter:
355           project: '{project}'
356
357     scm:
358       - gerrit-trigger-scm:
359           credentials-id: 'jenkins-gerrit-credentials'
360           refspec: '$GERRIT_REFSPEC'
361           choosing-strategy: 'gerrit'
362
363     wrappers:
364       - fdio-infra-wrappers:
365           build-timeout: '{build-timeout}'
366       - credentials-binding:
367           - text:
368               credential-id: VppApiCompatNotify
369               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
370
371     triggers:
372       - gerrit:
373           server-name: 'Primary'
374           trigger-on:
375             - patchset-created-event:
376                 exclude-drafts: 'true'
377                 exclude-trivial-rebase: 'false'
378                 exclude-no-code-change: 'false'
379             - draft-published-event
380             - comment-added-contains-event:
381                 comment-contains-value: 'checkstylecheck'
382             - comment-added-contains-event:
383                 comment-contains-value: 'docsonly'
384             - comment-added-contains-event:
385                 comment-contains-value: 'recheck'
386             - comment-added-contains-event:
387                 comment-contains-value: 'reverify'
388             # Following two are to cover missing functions of drafts
389             # going to review status
390             - comment-added-contains-event:
391                 comment-contains-value: 'runtest'
392             - comment-added-contains-event:
393                 comment-contains-value: 'This change is ready for review'
394           projects:
395             - project-compare-type: 'ANT'
396               project-pattern: '{project}'
397               branches:
398                 - branch-compare-type: 'ANT'
399                   branch-pattern: '**/{branch}'
400               file-paths:
401                 - compare-type: REG_EXP
402                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
403               forbidden-file-paths:
404                 - compare-type: REG_EXP
405                   pattern: .*extras\/emacs\/.*
406               disable-strict-forbidden-file-verification: 'true'
407           override-votes: true
408           gerrit-build-notbuilt-verified-value: 0
409           gerrit-build-successful-verified-value: 1
410           # yamllint disable-line rule:line-length
411           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
412           # yamllint disable-line rule:line-length
413           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
414           successful-message: 'checkstyle_success'
415           skip-vote:
416             successful: true
417             failed: false
418             unstable: false
419             notbuilt: false
420
421     builders:
422       - shell:
423           !include-raw-escape:
424           - ../scripts/setup_executor_env.sh
425       - shell:
426           !include-raw-escape:
427           - ../scripts/vpp/checkstyle.sh
428       - shell:
429           !include-raw-escape:
430           - ../scripts/vpp/test-checkstyle.sh
431       - shell:
432           !include-raw-escape:
433           - ../scripts/vpp/api-checkstyle.sh
434       - shell:
435           !include-raw-escape:
436           - ../scripts/vpp/commitmsg.sh
437       - shell:
438           !include-raw-escape:
439           - ../scripts/vpp/docs_spell.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