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