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