vpp: add stable/2206 CI jobs
[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: .*docs\/.*
406                 - compare-type: REG_EXP
407                   pattern: .*extras\/emacs\/.*
408               disable-strict-forbidden-file-verification: 'true'
409           override-votes: true
410           gerrit-build-notbuilt-verified-value: 0
411           gerrit-build-successful-verified-value: 1
412           # yamllint disable-line rule:line-length
413           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
414           # yamllint disable-line rule:line-length
415           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
416           successful-message: 'checkstyle_success'
417           skip-vote:
418             successful: true
419             failed: false
420             unstable: false
421             notbuilt: false
422
423     builders:
424       - shell:
425           !include-raw-escape:
426           - ../scripts/setup_executor_env.sh
427       - shell:
428           !include-raw-escape:
429           - ../scripts/vpp/checkstyle.sh
430       - shell:
431           !include-raw-escape:
432           - ../scripts/vpp/test-checkstyle.sh
433       - shell:
434           !include-raw-escape:
435           - ../scripts/vpp/api-checkstyle.sh
436       - shell:
437           !include-raw-escape:
438           - ../scripts/vpp/commitmsg.sh
439
440     publishers:
441       - fdio-infra-publish
442
443 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
444
445 # VPP-VERIFY JOB TEMPLATE
446 - job-template:
447     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
448
449     project-type: freestyle
450     node: 'builder-{os}-prod-{executor-arch}'
451     concurrent: true
452
453     properties:
454       - lf-infra-properties:
455           build-days-to-keep: "{build-days-to-keep}"
456
457     # Please keep parameters in alphabetical order
458     parameters:
459       - gerrit-parameter:
460           branch: '{branch}'
461       - gerrit-refspec-parameter:
462           refspec: '{branch-refspec}'
463       - make-parallel-jobs-parameter:
464           make-parallel-jobs: '{make-parallel-jobs}'
465       - make-test-os-parameter:
466           make-test-os: '{make-test-os}'
467       - os-parameter:
468           os: '{os}'
469       - project-parameter:
470           project: '{project}'
471       - stream-parameter:
472           stream: '{stream}'
473
474     scm:
475       - gerrit-trigger-scm:
476           credentials-id: 'jenkins-gerrit-credentials'
477           refspec: '$GERRIT_REFSPEC'
478           choosing-strategy: 'gerrit'
479
480     wrappers:
481       - fdio-infra-wrappers:
482           build-timeout: 120
483
484     triggers:
485       - gerrit-trigger-checkstyle:
486           name: '{project}'
487           branch: '{branch}'
488
489     builders:
490       - shell:
491           !include-raw-escape:
492           - ../scripts/setup_executor_env.sh
493       - shell:
494           !include-raw-escape:
495           - ../scripts/setup_vpp_ubuntu_docker_test.sh
496       - shell:
497           !include-raw-escape:
498           - ../scripts/setup_vpp_ext_deps.sh
499       - shell:
500           !include-raw-escape:
501           - ../scripts/vpp/build.sh
502
503     publishers:
504       - fdio-infra-publish
505 # [end] VPP-VERIFY JOB TEMPLATE
506
507 # VPP-DEBUG-VERIFY JOB TEMPLATE
508 - job-template:
509     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
510
511     project-type: freestyle
512     node: 'builder-{os}-prod-{executor-arch}'
513     concurrent: true
514
515     properties:
516       - lf-infra-properties:
517           build-days-to-keep: "{build-days-to-keep}"
518
519     # Please keep parameters in alphabetical order
520     parameters:
521       - gerrit-parameter:
522           branch: '{branch}'
523       - gerrit-refspec-parameter:
524           refspec: '{branch-refspec}'
525       - make-parallel-jobs-parameter:
526           make-parallel-jobs: '{make-parallel-jobs}'
527       - make-test-os-parameter:
528           make-test-os: '{make-test-os}'
529       - os-parameter:
530           os: '{os}'
531       - project-parameter:
532           project: '{project}'
533       - stream-parameter:
534           stream: '{stream}'
535
536     scm:
537       - gerrit-trigger-scm:
538           credentials-id: 'jenkins-gerrit-credentials'
539           refspec: '$GERRIT_REFSPEC'
540           choosing-strategy: 'gerrit'
541
542     wrappers:
543       - fdio-infra-wrappers:
544           build-timeout: '{build-timeout}'
545
546     triggers:
547       - timed: '{periodicity}'
548       - gerrit-trigger-manually-triggered:
549           comment-trigger-value: '{comment-trigger-value}'
550           name: '{project}'
551           branch: '{branch}'
552
553     builders:
554       - shell:
555           !include-raw-escape:
556           - ../scripts/setup_executor_env.sh
557       - shell:
558           !include-raw-escape:
559           - ../scripts/setup_vpp_ubuntu_docker_test.sh
560       - shell:
561           !include-raw-escape:
562           - ../scripts/setup_vpp_ext_deps.sh
563       - shell:
564           !include-raw-escape:
565           - ../scripts/vpp/debug-build.sh
566
567     publishers:
568       - fdio-infra-publish
569 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
570
571 # VPP-MERGE JOB TEMPLATE
572 - job-template:
573     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
574
575     project-type: freestyle
576     node: 'builder-{os}-prod-{executor-arch}'
577
578     properties:
579       - lf-infra-properties:
580           build-days-to-keep: "{build-days-to-keep}"
581
582     # Please keep parameters in alphabetical order
583     parameters:
584       - gerrit-parameter:
585           branch: '{branch}'
586       - make-parallel-jobs-parameter:
587           make-parallel-jobs: '{make-parallel-jobs}'
588       - make-test-os-parameter:
589           make-test-os: '{make-test-os}'
590       - os-parameter:
591           os: '{os}'
592       - project-parameter:
593           project: '{project}'
594       - stream-parameter:
595           stream: '{stream}'
596
597     scm:
598       - gerrit-trigger-scm:
599           credentials-id: 'jenkins-gerrit-credentials'
600           refspec: ''
601           choosing-strategy: 'default'
602
603     wrappers:
604       - fdio-infra-wrappers:
605           build-timeout: 120
606
607     triggers:
608       - gerrit-trigger-patch-merged:
609           name: '{project}'
610           branch: '{branch}'
611
612     builders:
613       - config-file-provider:
614           files:
615             - file-id: '.packagecloud'
616               target: '/root/.packagecloud'
617       - config-file-provider:
618           files:
619             - file-id: 'packagecloud_api'
620               target: '/root/packagecloud_api'
621       - shell:
622           !include-raw-escape:
623           - ../scripts/setup_executor_env.sh
624       - shell:
625           !include-raw-escape:
626           - ../scripts/setup_vpp_ubuntu_docker_test.sh
627       - shell:
628           !include-raw-escape:
629           - ../scripts/setup_vpp_ext_deps.sh
630       - shell:
631           !include-raw-escape:
632           - ../scripts/vpp/build.sh
633       - shell:
634           !include-raw-escape:
635           - ../scripts/packagecloud_push.sh
636
637     publishers:
638       - fdio-infra-publish
639 # [end] VPP-MERGE JOB TEMPLATE
640
641 # VPP-GCC-VERIFY JOB TEMPLATE
642 - job-template:
643     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
644
645     project-type: freestyle
646     node: 'builder-{os}-prod-{executor-arch}'
647     concurrent: true
648
649     properties:
650       - lf-infra-properties:
651           build-days-to-keep: "{build-days-to-keep}"
652
653     # Please keep parameters in alphabetical order
654     parameters:
655       - gerrit-parameter:
656           branch: '{branch}'
657       - gerrit-refspec-parameter:
658           refspec: '{branch-refspec}'
659       - make-parallel-jobs-parameter:
660           make-parallel-jobs: '{make-parallel-jobs}'
661       - os-parameter:
662           os: '{os}'
663       - project-parameter:
664           project: '{project}'
665       - stream-parameter:
666           stream: '{stream}'
667
668     scm:
669       - gerrit-trigger-scm:
670           credentials-id: 'jenkins-gerrit-credentials'
671           refspec: '$GERRIT_REFSPEC'
672           choosing-strategy: 'gerrit'
673
674     wrappers:
675       - fdio-infra-wrappers:
676           build-timeout: 120
677
678     triggers:
679       - gerrit-trigger-checkstyle:
680           name: '{project}'
681           branch: '{branch}'
682
683     builders:
684       - shell:
685           !include-raw-escape:
686           - ../scripts/setup_executor_env.sh
687       - shell:
688           !include-raw-escape:
689           - ../scripts/setup_vpp_ubuntu_docker_test.sh
690       - shell:
691           !include-raw-escape:
692           - ../scripts/setup_vpp_ext_deps.sh
693       - shell:
694           !include-raw-escape:
695           - ../scripts/vpp/gcc-build.sh
696
697     publishers:
698       - fdio-infra-publish
699 # [end] VPP-GCC-VERIFY JOB TEMPLATE
700
701 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
702 - job-template:
703     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
704     description: |
705       <ul>
706           <li>executor
707               <ul>
708                   <li>csit-builder-{os}-prod-{executor-arch}
709               </ul>
710           <li>testbed architecture
711               <ul>
712                   <li>{testbed-arch}
713               </ul>
714       </ul>
715
716     project-type: freestyle
717     node: 'csit-builder-{os}-prod-{executor-arch}'
718     concurrent: true
719     latest-only: false
720
721     properties:
722       - lf-infra-properties:
723           build-days-to-keep: "{build-days-to-keep}"
724
725     # Please keep parameters in alphabetical order
726     parameters:
727       - gerrit-csit-refspec-parameter
728       - gerrit-event-comment-text-parameter
729       - gerrit-event-type-parameter
730       - gerrit-parameter:
731           branch: '{branch}'
732       - gerrit-refspec-parameter:
733           refspec: '{branch-refspec}'
734       - make-parallel-jobs-parameter:
735           make-parallel-jobs: '{make-parallel-jobs}'
736       - os-parameter:
737           os: '{os}'
738       - project-parameter:
739           project: '{project}'
740       - stream-parameter:
741           stream: '{stream}'
742
743     scm:
744       - gerrit-trigger-scm:
745           credentials-id: 'jenkins-gerrit-credentials'
746           refspec: '$GERRIT_REFSPEC'
747           choosing-strategy: 'gerrit'
748
749     wrappers:
750       - fdio-infra-wrappers:
751           build-timeout: '90'
752
753     triggers:
754       - 'gerrit-trigger-vpp-csit-devicetest-full':
755           name: '{project}'
756           branch: '{branch}'
757           skip-vote: '{skip-vote}'
758
759     builders:
760       - shell:
761           !include-raw-escape:
762           - ../scripts/setup_executor_env.sh
763       - shell:
764           !include-raw-escape:
765           - ../scripts/setup_vpp_ubuntu_docker_test.sh
766       - shell:
767           !include-raw-escape:
768           - ../scripts/setup_vpp_ext_deps.sh
769       - shell:
770           !include-raw-escape:
771           - ../scripts/vpp/csit-device.sh
772
773     publishers:
774       - fdio-infra-publish
775 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
776
777 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
778 - job-template:
779     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
780     description: |
781       <ul>
782           <li>executor
783               <ul>
784                   <li>builder-{os}-prod-{executor-arch}
785               </ul>
786           <li>testbed architecture
787               <ul>
788                   <li>{testbed-arch}
789               </ul>
790           <li>Objective
791           Contrary to csit-vpp job, this also measures the parent performance,
792           and fails if performance regression is detected.
793           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
794       </ul>
795
796     project-type: freestyle
797     node: 'builder-{os}-prod-{executor-arch}'
798     concurrent: true
799     latest-only: false
800
801     properties:
802       - lf-infra-properties:
803           build-days-to-keep: "{build-days-to-keep}"
804
805     # Please keep parameters in alphabetical order
806     parameters:
807       - csit-perf-trial-duration-parameter:
808           csit-perf-trial-duration: "10.0"
809       - csit-perf-trial-multiplicity-parameter:
810           csit-perf-trial-multiplicity: "5"
811       - gerrit-csit-refspec-parameter
812       - gerrit-event-comment-text-parameter
813       - gerrit-event-type-parameter
814       - gerrit-refspec-parameter:
815           refspec: '{branch-refspec}'
816       - gerrit-parameter:
817           branch: '{branch}'
818       - make-parallel-jobs-parameter:
819           make-parallel-jobs: '{make-parallel-jobs}'
820       - os-parameter:
821           os: '{os}'
822       - project-parameter:
823           project: '{project}'
824       - stream-parameter:
825           stream: '{stream}'
826
827     scm:
828       - gerrit-trigger-scm:
829           credentials-id: 'jenkins-gerrit-credentials'
830           refspec: '$GERRIT_REFSPEC'
831           choosing-strategy: 'gerrit'
832
833     wrappers:
834       - fdio-infra-wrappers-non-activity-timeout:
835           build-timeout: 300
836
837     triggers:
838       - gerrit-trigger-csit-perftest:
839           project: '{project}'
840           branch: '{branch}'
841           trigger-word: 'perftest-{testbed-arch}'
842           skip-vote: true
843
844     builders:
845       - shell:
846           !include-raw-escape:
847           - ../scripts/setup_executor_env.sh
848       - shell:
849           !include-raw-escape:
850           - ../scripts/setup_vpp_ubuntu_docker_test.sh
851       - shell:
852           !include-raw-escape:
853           - ../scripts/setup_vpp_ext_deps.sh
854       - shell:
855           !include-raw-escape:
856           - ../scripts/vpp/csit-perf.sh
857
858     publishers:
859       - postbuildscript:
860           # Can be removed when all CSIT branches use correct archive directory.
861           builders:
862             - build-on:
863                 - ABORTED
864                 - FAILURE
865                 - NOT_BUILT
866                 - SUCCESS
867                 - UNSTABLE
868               build-steps:
869                 - shell:
870                     !include-raw-escape:
871                     - ../scripts/vpp/copy_archives.sh
872       - robot-report:
873           output-path: 'archives/csit_current/0/'
874
875       - fdio-infra-publish
876 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
877
878 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
879 - job-template:
880     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
881
882     project-type: freestyle
883     node: 'builder-{os}-prod-{executor-arch}'
884     concurrent: true
885     latest-only: false
886
887     properties:
888       - lf-infra-properties:
889           build-days-to-keep: "{build-days-to-keep}"
890
891     # Please keep parameters in alphabetical order
892     parameters:
893       # Not sure whether not failing has any useful usage,
894       # but it does not hurt to have some flexibility for future.
895       - csit-fail-on-crc-mismatch-parameter:
896           fail-on-crc-mismatch: 'True'
897       - gerrit-csit-refspec-parameter
898       - gerrit-parameter:
899           branch: '{branch}'
900       - gerrit-refspec-parameter:
901           refspec: '{branch-refspec}'
902       - project-parameter:
903           project: '{project}'
904       - stream-parameter:
905           stream: '{stream}'
906
907     scm:
908       - gerrit-trigger-scm:
909           credentials-id: 'jenkins-gerrit-credentials'
910           refspec: '$GERRIT_REFSPEC'
911           choosing-strategy: 'gerrit'
912
913     wrappers:
914       - fdio-infra-wrappers-non-activity-timeout:
915           build-timeout: 300
916
917     triggers:
918       - gerrit-trigger-checkstyle:
919           name: '{project}'
920           branch: '{branch}'
921
922     builders:
923       - shell:
924           !include-raw-escape:
925           - ../scripts/setup_executor_env.sh
926       - shell:
927           !include-raw-escape:
928           - ../scripts/setup_vpp_ubuntu_docker_test.sh
929       - shell:
930           !include-raw-escape:
931           - ../scripts/vpp/check_crc.sh
932     # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
933
934     publishers:
935       - fdio-infra-publish
936 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
937 # [end] JOB TEMPLATE DEFINITIONS