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