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