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:
6 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 # Please keep projects grouped in this order:
18 # vpp-x86_64, vpp-aarch64, vpp-csit
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.
30 # VPP-CHECKSTYLE-X86_64 PROJECT
32 name: vpp-checkstyle-x86_64
34 - 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
49 executor-arch: 'x86_64'
51 # os deprecated in 23.06
54 # os deprecated in 23.02
57 # os deprecated in master
61 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
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.
75 - 'vpp-verify-{stream}-{os}-{executor-arch}'
76 - 'vpp-merge-{stream}-{os}-{executor-arch}'
78 make-parallel-jobs: '4'
83 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
84 make-test-multiworker-os: 'debian-11'
88 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
89 make-test-multiworker-os: 'debian-11'
93 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
94 make-test-multiworker-os: 'debian-11'
99 executor-arch: 'x86_64'
100 # [end] VPP-X86_64 PROJECT
102 # VPP-GCC-X86_64 PROJECT
106 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
108 make-parallel-jobs: '4'
112 executor-arch: 'x86_64'
118 branch: 'stable/2302'
121 branch: 'stable/2306'
124 # os deprecated in 23.06
127 # os deprecated in 23.02
130 # os deprecated in master
134 # [end] VPP-GCC-X86_64 PROJECT
136 # VPP-DEBUG-X86_64 PROJECT
138 # Currently a periodic job due to intermittent failures.
139 # Limiting branches to master, since other branches
140 # may not get fixes for the intermittent failures.
143 name: vpp-debug-x86_64
145 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
147 make-parallel-jobs: '4'
148 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
149 comment-trigger-value: 'debug-verify'
154 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
156 executor-arch: 'x86_64'
158 # [end] VPP-DEBUG-X86_64 PROJECT
160 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
162 # Currently a periodic job due to intermittent failures.
163 # Limiting branches to master, since other branches
164 # may not get fixes for the intermittent failures.
167 name: vpp-dpdk-rdma-version-mismatch-x86_64
169 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
171 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
172 comment-trigger-value: 'dpdk-rdma-version-mismatch'
176 # Once per day at 00:15
177 periodicity: '15 0 * * 0-6'
179 executor-arch: 'x86_64'
181 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
183 # VPP-COV-X86_64 PROJECT
185 # A per-patch job to produce code coverage.
187 # TODO: switch OS to ubuntu-22.04 once the skipping of intermittently failing
193 - 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
195 make-parallel-jobs: '4'
196 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
197 comment-trigger-value: 'cov-verify'
202 # Once per day at 00:25
203 periodicity: '25 0 * * 0-6'
205 executor-arch: 'x86_64'
207 # [end] VPP-COV-X86_64 PROJECT
209 # VPP-AARCH64 PROJECT
211 # NOTE: The list of supported branches for each OS are maintained
212 # in .../ci-management/docker/scripts/lib_vpp.sh
213 # The job configuration must be derived from that list, thus
214 # modifications to both should be made at the same time.
215 # The AARCH64 architecture is in the process of catching up
216 # with X86_64 in terms of OS coverage. Thus the jobs are
217 # a subset of those defined in the docker image build script.
221 - 'vpp-verify-{stream}-{os}-{executor-arch}'
222 - 'vpp-merge-{stream}-{os}-{executor-arch}'
224 make-parallel-jobs: '4'
229 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
230 make-test-multiworker-os: ''
232 branch: 'stable/2302'
234 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
235 make-test-multiworker-os: ''
237 branch: 'stable/2306'
239 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
240 make-test-multiworker-os: ''
244 executor-arch: 'aarch64'
245 # [end] VPP-AARCH64 PROJECT
247 # VPP-CSIT-VERIFY-DEVICE PROJECT
249 name: vpp-csit-verify-device
251 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
252 make-parallel-jobs: '32'
260 branch: 'stable/2302'
263 branch: 'stable/2306'
268 executor-arch: 'x86_64'
272 executor-arch: 'aarch64'
274 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
276 # VPP-CSIT-VERIFY-PERF PROJECT
278 name: vpp-csit-verify-perf
280 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
290 executor-arch: 'x86_64'
293 executor-arch: 'x86_64'
296 executor-arch: 'x86_64'
299 executor-arch: 'x86_64'
302 executor-arch: 'x86_64'
305 executor-arch: 'aarch64'
306 make-parallel-jobs: '16'
309 executor-arch: 'aarch64'
310 make-parallel-jobs: '16'
313 executor-arch: 'aarch64'
314 make-parallel-jobs: '16'
317 executor-arch: 'x86_64'
320 executor-arch: 'x86_64'
323 executor-arch: 'x86_64'
324 # [end] VPP-CSIT-VERIFY-PERF PROJECT
326 # VPP-CSIT-API-CRC PROJECT
328 # Only master and LTS branches are supported.
331 name: vpp-csit-api-crc
333 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
335 executor-arch: 'x86_64'
342 branch: 'stable/2302'
345 branch: 'stable/2306'
349 # [end] VPP-CSIT-API-CRC PROJECT
351 # LF RELENG VPP PROJECTS
356 - gerrit-info-yaml-verify
357 build-node: centos7-builder-2c-2g
366 # [end] LF RELENG VPP PROJECTS
367 # [end] PROJECT DEFINITIONS
369 # JOB TEMPLATE DEFINITIONS
371 # Please keep job templates in the same order as they are referenced
372 # in the project definitions above.
374 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
376 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
378 project-type: freestyle
379 node: 'builder-{os}-prod-{executor-arch}'
383 - lf-infra-properties:
384 build-days-to-keep: "{build-days-to-keep}"
386 # Please keep parameters in alphabetical order
390 - gerrit-refspec-parameter:
391 refspec: '{branch-refspec}'
398 - gerrit-trigger-scm:
399 credentials-id: 'jenkins-gerrit-credentials'
400 refspec: '$GERRIT_REFSPEC'
401 choosing-strategy: 'gerrit'
404 - fdio-infra-wrappers:
405 build-timeout: '{build-timeout}'
406 - credentials-binding:
408 credential-id: VppApiCompatNotify
409 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
413 server-name: 'Primary'
415 - patchset-created-event:
416 exclude-drafts: 'true'
417 exclude-trivial-rebase: 'false'
418 exclude-no-code-change: 'false'
419 - draft-published-event
420 - comment-added-contains-event:
421 comment-contains-value: 'checkstylecheck'
422 - comment-added-contains-event:
423 comment-contains-value: 'recheck'
424 - comment-added-contains-event:
425 comment-contains-value: 'reverify'
426 # Following two are to cover missing functions of drafts
427 # going to review status
428 - comment-added-contains-event:
429 comment-contains-value: 'runtest'
430 - comment-added-contains-event:
431 comment-contains-value: 'This change is ready for review'
433 - project-compare-type: 'ANT'
434 project-pattern: '{project}'
436 - branch-compare-type: 'ANT'
437 branch-pattern: '**/{branch}'
439 - compare-type: REG_EXP
440 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
441 forbidden-file-paths:
442 - compare-type: REG_EXP
443 pattern: .*extras\/emacs\/.*
444 disable-strict-forbidden-file-verification: 'true'
446 gerrit-build-notbuilt-verified-value: 0
447 gerrit-build-successful-verified-value: 1
448 # yamllint disable-line rule:line-length
449 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
450 # yamllint disable-line rule:line-length
451 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
452 successful-message: 'checkstyle_success'
462 - ../scripts/setup_executor_env.sh
465 - ../scripts/vpp/checkstyle.sh
468 - ../scripts/vpp/test-checkstyle.sh
471 - ../scripts/vpp/api-checkstyle.sh
474 - ../scripts/vpp/commitmsg.sh
477 - ../scripts/vpp/docs_spell.sh
482 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
484 # VPP-VERIFY JOB TEMPLATE
486 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
488 project-type: freestyle
489 node: 'builder-{os}-prod-{executor-arch}'
493 - lf-infra-properties:
494 build-days-to-keep: "{build-days-to-keep}"
496 # Please keep parameters in alphabetical order
500 - gerrit-refspec-parameter:
501 refspec: '{branch-refspec}'
502 - make-parallel-jobs-parameter:
503 make-parallel-jobs: '{make-parallel-jobs}'
504 - make-test-os-parameter:
505 make-test-os: '{make-test-os}'
506 - make-test-multiworker-os-parameter:
507 make-test-multiworker-os: '{make-test-multiworker-os}'
516 - gerrit-trigger-scm:
517 credentials-id: 'jenkins-gerrit-credentials'
518 refspec: '$GERRIT_REFSPEC'
519 choosing-strategy: 'gerrit'
522 - fdio-infra-wrappers:
526 - gerrit-trigger-checkstyle:
533 - ../scripts/setup_executor_env.sh
536 - ../scripts/setup_vpp_ubuntu_docker_test.sh
539 - ../scripts/setup_vpp_ext_deps.sh
542 - ../scripts/vpp/build.sh
546 # [end] VPP-VERIFY JOB TEMPLATE
548 # VPP-DEBUG-VERIFY JOB TEMPLATE
550 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
552 project-type: freestyle
553 node: 'builder-{os}-prod-{executor-arch}'
557 - lf-infra-properties:
558 build-days-to-keep: "{build-days-to-keep}"
560 # Please keep parameters in alphabetical order
564 - gerrit-refspec-parameter:
565 refspec: '{branch-refspec}'
566 - make-parallel-jobs-parameter:
567 make-parallel-jobs: '{make-parallel-jobs}'
568 - make-test-os-parameter:
569 make-test-os: '{make-test-os}'
578 - gerrit-trigger-scm:
579 credentials-id: 'jenkins-gerrit-credentials'
580 refspec: '$GERRIT_REFSPEC'
581 choosing-strategy: 'gerrit'
584 - fdio-infra-wrappers:
585 build-timeout: '{build-timeout}'
588 - gerrit-trigger-checkstyle-nonvoting:
595 - ../scripts/setup_executor_env.sh
598 - ../scripts/setup_vpp_ubuntu_docker_test.sh
601 - ../scripts/setup_vpp_ext_deps.sh
604 - ../scripts/vpp/debug-build.sh
608 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
610 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
612 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
614 project-type: freestyle
615 node: 'builder-{os}-prod-{executor-arch}'
619 - lf-infra-properties:
620 build-days-to-keep: "{build-days-to-keep}"
622 # Please keep parameters in alphabetical order
626 - make-parallel-jobs-parameter:
627 make-parallel-jobs: '{make-parallel-jobs}'
628 - make-test-os-parameter:
629 make-test-os: '{make-test-os}'
638 - gerrit-trigger-scm:
639 credentials-id: 'jenkins-gerrit-credentials'
641 choosing-strategy: 'default'
644 - fdio-infra-wrappers:
645 build-timeout: '{build-timeout}'
648 - timed: '{periodicity}'
649 - gerrit-trigger-manually-triggered:
650 comment-trigger-value: '{comment-trigger-value}'
657 - ../scripts/setup_executor_env.sh
660 - ../scripts/setup_vpp_ubuntu_docker_test.sh
663 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
666 - vpp-dpdk-rdma-version-mismatch:
669 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
671 # VPP-MERGE JOB TEMPLATE
673 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
675 project-type: freestyle
676 node: 'builder-{os}-prod-{executor-arch}'
679 - lf-infra-properties:
680 build-days-to-keep: "{build-days-to-keep}"
682 # Please keep parameters in alphabetical order
686 - make-parallel-jobs-parameter:
687 make-parallel-jobs: '{make-parallel-jobs}'
688 - make-test-os-parameter:
689 make-test-os: '{make-test-os}'
690 - make-test-multiworker-os-parameter:
691 make-test-multiworker-os: '{make-test-multiworker-os}'
700 - gerrit-trigger-scm:
701 credentials-id: 'jenkins-gerrit-credentials'
703 choosing-strategy: 'default'
706 - fdio-infra-wrappers:
710 - gerrit-trigger-patch-merged:
715 - config-file-provider:
717 - file-id: '.packagecloud'
718 target: '/root/.packagecloud'
719 - config-file-provider:
721 - file-id: 'packagecloud_api'
722 target: '/root/packagecloud_api'
725 - ../scripts/setup_executor_env.sh
728 - ../scripts/vpp/commitmsg.sh
731 - ../scripts/setup_vpp_ubuntu_docker_test.sh
734 - ../scripts/setup_vpp_ext_deps.sh
737 - ../scripts/vpp/build.sh
740 - ../scripts/packagecloud_push.sh
744 # [end] VPP-MERGE JOB TEMPLATE
746 # VPP-GCC-VERIFY JOB TEMPLATE
748 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
750 project-type: freestyle
751 node: 'builder-{os}-prod-{executor-arch}'
755 - lf-infra-properties:
756 build-days-to-keep: "{build-days-to-keep}"
758 # Please keep parameters in alphabetical order
762 - gerrit-refspec-parameter:
763 refspec: '{branch-refspec}'
764 - make-parallel-jobs-parameter:
765 make-parallel-jobs: '{make-parallel-jobs}'
774 - gerrit-trigger-scm:
775 credentials-id: 'jenkins-gerrit-credentials'
776 refspec: '$GERRIT_REFSPEC'
777 choosing-strategy: 'gerrit'
780 - fdio-infra-wrappers:
784 - gerrit-trigger-checkstyle:
791 - ../scripts/setup_executor_env.sh
794 - ../scripts/setup_vpp_ubuntu_docker_test.sh
797 - ../scripts/setup_vpp_ext_deps.sh
800 - ../scripts/vpp/gcc-build.sh
804 # [end] VPP-GCC-VERIFY JOB TEMPLATE
806 # VPP-COV-VERIFY JOB TEMPLATE
808 name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
810 project-type: freestyle
811 node: 'builder-{os}-prod-{executor-arch}'
815 - lf-infra-properties:
816 build-days-to-keep: "{build-days-to-keep}"
818 # Please keep parameters in alphabetical order
822 - make-parallel-jobs-parameter:
823 make-parallel-jobs: '{make-parallel-jobs}'
824 - make-test-os-parameter:
825 make-test-os: '{make-test-os}'
834 - gerrit-trigger-scm:
835 credentials-id: 'jenkins-gerrit-credentials'
837 choosing-strategy: 'default'
840 - fdio-infra-wrappers:
841 build-timeout: '{build-timeout}'
844 - timed: '{periodicity}'
845 - gerrit-trigger-manually-triggered:
846 comment-trigger-value: '{comment-trigger-value}'
853 - ../scripts/setup_executor_env.sh
856 - ../scripts/setup_vpp_ubuntu_docker_test.sh
859 - ../scripts/setup_vpp_ext_deps.sh
862 - ../scripts/vpp/cov-build.sh
865 - fdio-infra-publish-cov-7day
867 # [end] VPP-COV-VERIFY JOB TEMPLATE
869 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
871 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
876 <li>csit-builder-{os}-prod-{executor-arch}
878 <li>testbed architecture
884 project-type: freestyle
885 node: 'csit-builder-{os}-prod-{executor-arch}'
890 - lf-infra-properties:
891 build-days-to-keep: "{build-days-to-keep}"
893 # Please keep parameters in alphabetical order
895 - gerrit-csit-refspec-parameter
896 - gerrit-event-comment-text-parameter
897 - gerrit-event-type-parameter
900 - gerrit-refspec-parameter:
901 refspec: '{branch-refspec}'
902 - make-parallel-jobs-parameter:
903 make-parallel-jobs: '{make-parallel-jobs}'
912 - gerrit-trigger-scm:
913 credentials-id: 'jenkins-gerrit-credentials'
914 refspec: '$GERRIT_REFSPEC'
915 choosing-strategy: 'gerrit'
918 - fdio-infra-wrappers:
922 - 'gerrit-trigger-vpp-csit-devicetest-full':
925 skip-vote: '{skip-vote}'
930 - ../scripts/setup_executor_env.sh
933 - ../scripts/setup_vpp_ubuntu_docker_test.sh
936 - ../scripts/setup_vpp_ext_deps.sh
939 - ../scripts/vpp/csit-device.sh
943 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
945 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
947 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
952 <li>builder-{os}-prod-{executor-arch}
954 <li>testbed architecture
959 Contrary to csit-vpp job, this also measures the parent performance,
960 and fails if performance regression is detected.
961 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
964 project-type: freestyle
965 node: 'builder-{os}-prod-{executor-arch}'
970 - lf-infra-properties:
971 build-days-to-keep: "{build-days-to-keep}"
973 # Please keep parameters in alphabetical order
975 - csit-perf-trial-duration-parameter:
976 csit-perf-trial-duration: "10.0"
977 - csit-perf-trial-multiplicity-parameter:
978 csit-perf-trial-multiplicity: "5"
979 - gerrit-csit-refspec-parameter
980 - gerrit-event-comment-text-parameter
981 - gerrit-event-type-parameter
982 - gerrit-refspec-parameter:
983 refspec: '{branch-refspec}'
986 - make-parallel-jobs-parameter:
987 make-parallel-jobs: '{make-parallel-jobs}'
996 - gerrit-trigger-scm:
997 credentials-id: 'jenkins-gerrit-credentials'
998 refspec: '$GERRIT_REFSPEC'
999 choosing-strategy: 'gerrit'
1002 - fdio-infra-wrappers-non-activity-timeout:
1006 - gerrit-trigger-csit-perftest:
1007 project: '{project}'
1009 trigger-word: 'perftest-{testbed-arch}'
1014 !include-raw-escape:
1015 - ../scripts/setup_executor_env.sh
1017 !include-raw-escape:
1018 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1020 !include-raw-escape:
1021 - ../scripts/setup_vpp_ext_deps.sh
1023 !include-raw-escape:
1024 - ../scripts/vpp/csit-perf.sh
1028 # Can be removed when all CSIT branches use correct archive directory.
1038 !include-raw-escape:
1039 - ../scripts/vpp/copy_archives.sh
1040 - fdio-infra-publish
1041 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1043 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1045 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1047 project-type: freestyle
1048 node: 'builder-{os}-prod-{executor-arch}'
1053 - lf-infra-properties:
1054 build-days-to-keep: "{build-days-to-keep}"
1056 # Please keep parameters in alphabetical order
1058 # Not sure whether not failing has any useful usage,
1059 # but it does not hurt to have some flexibility for future.
1060 - csit-fail-on-crc-mismatch-parameter:
1061 fail-on-crc-mismatch: 'True'
1062 - gerrit-csit-refspec-parameter
1065 - gerrit-refspec-parameter:
1066 refspec: '{branch-refspec}'
1067 - project-parameter:
1068 project: '{project}'
1073 - gerrit-trigger-scm:
1074 credentials-id: 'jenkins-gerrit-credentials'
1075 refspec: '$GERRIT_REFSPEC'
1076 choosing-strategy: 'gerrit'
1079 - fdio-infra-wrappers-non-activity-timeout:
1083 - gerrit-trigger-checkstyle:
1089 !include-raw-escape:
1090 - ../scripts/setup_executor_env.sh
1092 !include-raw-escape:
1093 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1095 !include-raw-escape:
1096 - ../scripts/vpp/check_crc.sh
1097 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1100 - fdio-infra-publish
1101 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1102 # [end] JOB TEMPLATE DEFINITIONS
1108 build-node: centos8-builder-2c-2g
1109 mvn-settings: vpp-settings
1111 - "gerrit-packagecloud-release-verify"
1114 name: vpp-packagecloud-release
1117 build-node: centos8-builder-2c-2g
1118 mvn-settings: vpp-settings
1120 - "gerrit-packagecloud-release-merge"
1121 - "{project-name}-gerrit-release-jobs"