1 # Copyright (c) 2022 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
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}'
52 executor-arch: 'x86_64'
54 # os deprecated in 23.02
57 # os deprecated in 22.10
60 # os deprecated in master
66 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
70 # NOTE: The list of supported branches for each OS are maintained
71 # in .../ci-management/docker/scripts/lib_vpp.sh
72 # The job configuration must be derived from that list, thus
73 # modifications to both should be made at the same time.
74 # Since x86_64 is the primary development architecture, this
75 # project definition should be identical to the docker image
76 # build scripts. Other architectures may be a subset.
80 - 'vpp-verify-{stream}-{os}-{executor-arch}'
81 - 'vpp-merge-{stream}-{os}-{executor-arch}'
83 make-parallel-jobs: '4'
88 make-test-os: 'ubuntu-22.04'
89 make-test-multiworker-os: 'debian-11'
93 make-test-os: 'ubuntu-20.04'
94 make-test-multiworker-os: 'debian-11'
98 make-test-os: 'ubuntu-20.04'
99 make-test-multiworker-os: 'debian-11'
101 branch: 'stable/2302'
103 make-test-os: 'ubuntu-22.04'
104 make-test-multiworker-os: 'debian-11'
109 executor-arch: 'x86_64'
114 # [end] VPP-X86_64 PROJECT
116 # VPP-DEBUG-X86_64 PROJECT
118 # Currently a periodic job due to intermittent failures.
119 # Limiting branches to master, since other branches
120 # may not get fixes for the intermittent failures.
123 name: vpp-debug-x86_64
125 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
127 make-parallel-jobs: '4'
128 make-test-os: 'ubuntu-22.04'
129 comment-trigger-value: 'debug-verify'
134 make-test-os: 'ubuntu-22.04'
136 executor-arch: 'x86_64'
138 # [end] VPP-DEBUG-X86_64 PROJECT
140 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
142 # Currently a periodic job due to intermittent failures.
143 # Limiting branches to master, since other branches
144 # may not get fixes for the intermittent failures.
147 name: vpp-dpdk-rdma-version-mismatch-x86_64
149 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
151 make-test-os: 'ubuntu-22.04'
152 comment-trigger-value: 'dpdk-rdma-version-mismatch'
156 # Once per day at 00:15
157 periodicity: '15 0 * * 0-6'
159 executor-arch: 'x86_64'
161 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
163 # VPP-GCC-X86_64 PROJECT
167 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
169 make-parallel-jobs: '4'
173 executor-arch: 'x86_64'
179 branch: 'stable/2206'
182 branch: 'stable/2210'
185 branch: 'stable/2302'
188 # os deprecated in 23.02
191 # os deprecated in 22.10
194 # os deprecated in master
200 # [end] VPP-GCC-X86_64 PROJECT
202 # VPP-AARCH64 PROJECT
204 # NOTE: The list of supported branches for each OS are maintained
205 # in .../ci-management/docker/scripts/lib_vpp.sh
206 # The job configuration must be derived from that list, thus
207 # modifications to both should be made at the same time.
208 # The AARCH64 architecture is in the process of catching up
209 # with X86_64 in terms of OS coverage. Thus the jobs are
210 # a subset of those defined in the docker image build script.
214 - 'vpp-verify-{stream}-{os}-{executor-arch}'
215 - 'vpp-merge-{stream}-{os}-{executor-arch}'
217 make-parallel-jobs: '4'
222 make-test-os: 'ubuntu-22.04'
223 make-test-multiworker-os: ''
225 branch: 'stable/2206'
227 make-test-os: 'ubuntu-20.04'
228 make-test-multiworker-os: ''
230 branch: 'stable/2210'
232 make-test-os: 'ubuntu-20.04'
233 make-test-multiworker-os: ''
235 branch: 'stable/2302'
237 make-test-os: 'ubuntu-22.04'
238 make-test-multiworker-os: ''
242 executor-arch: 'aarch64'
247 # [end] VPP-AARCH64 PROJECT
249 # VPP-CSIT-VERIFY-DEVICE PROJECT
251 name: vpp-csit-verify-device
253 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
254 make-parallel-jobs: '32'
262 branch: 'stable/2210'
265 branch: 'stable/2302'
270 executor-arch: 'x86_64'
273 executor-arch: 'aarch64'
275 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
277 # VPP-CSIT-VERIFY-PERF PROJECT
279 name: vpp-csit-verify-perf
281 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
291 executor-arch: 'x86_64'
294 executor-arch: 'x86_64'
297 executor-arch: 'x86_64'
300 executor-arch: 'x86_64'
303 executor-arch: 'aarch64'
304 make-parallel-jobs: '16'
307 executor-arch: 'aarch64'
308 make-parallel-jobs: '16'
311 executor-arch: 'aarch64'
312 make-parallel-jobs: '16'
315 executor-arch: 'x86_64'
316 # [end] VPP-CSIT-VERIFY-PERF PROJECT
318 # VPP-CSIT-API-CRC PROJECT
320 # Only master and LTS branches are supported.
323 name: vpp-csit-api-crc
325 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
327 executor-arch: 'x86_64'
334 branch: 'stable/2206'
337 branch: 'stable/2210'
340 branch: 'stable/2302'
346 # os deprecated in 23.02
349 # os deprecated in 22.10
352 # os deprecated in master
358 # [end] VPP-CSIT-API-CRC PROJECT
360 # LF RELENG VPP PROJECTS
365 - gerrit-info-yaml-verify
366 build-node: centos7-builder-2c-2g
375 # [end] LF RELENG VPP PROJECTS
376 # [end] PROJECT DEFINITIONS
378 # JOB TEMPLATE DEFINITIONS
380 # Please keep job templates in the same order as they are referenced
381 # in the project definitions above.
383 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
385 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
387 project-type: freestyle
388 node: 'builder-{os}-prod-{executor-arch}'
392 - lf-infra-properties:
393 build-days-to-keep: "{build-days-to-keep}"
395 # Please keep parameters in alphabetical order
399 - gerrit-refspec-parameter:
400 refspec: '{branch-refspec}'
407 - gerrit-trigger-scm:
408 credentials-id: 'jenkins-gerrit-credentials'
409 refspec: '$GERRIT_REFSPEC'
410 choosing-strategy: 'gerrit'
413 - fdio-infra-wrappers:
414 build-timeout: '{build-timeout}'
415 - credentials-binding:
417 credential-id: VppApiCompatNotify
418 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
422 server-name: 'Primary'
424 - patchset-created-event:
425 exclude-drafts: 'true'
426 exclude-trivial-rebase: 'false'
427 exclude-no-code-change: 'false'
428 - draft-published-event
429 - comment-added-contains-event:
430 comment-contains-value: 'checkstylecheck'
431 - comment-added-contains-event:
432 comment-contains-value: 'docsonly'
433 - comment-added-contains-event:
434 comment-contains-value: 'recheck'
435 - comment-added-contains-event:
436 comment-contains-value: 'reverify'
437 # Following two are to cover missing functions of drafts
438 # going to review status
439 - comment-added-contains-event:
440 comment-contains-value: 'runtest'
441 - comment-added-contains-event:
442 comment-contains-value: 'This change is ready for review'
444 - project-compare-type: 'ANT'
445 project-pattern: '{project}'
447 - branch-compare-type: 'ANT'
448 branch-pattern: '**/{branch}'
450 - compare-type: REG_EXP
451 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
452 forbidden-file-paths:
453 - compare-type: REG_EXP
454 pattern: .*extras\/emacs\/.*
455 disable-strict-forbidden-file-verification: 'true'
457 gerrit-build-notbuilt-verified-value: 0
458 gerrit-build-successful-verified-value: 1
459 # yamllint disable-line rule:line-length
460 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
461 # yamllint disable-line rule:line-length
462 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
463 successful-message: 'checkstyle_success'
473 - ../scripts/setup_executor_env.sh
476 - ../scripts/vpp/checkstyle.sh
479 - ../scripts/vpp/test-checkstyle.sh
482 - ../scripts/vpp/api-checkstyle.sh
485 - ../scripts/vpp/commitmsg.sh
488 - ../scripts/vpp/docs_spell.sh
493 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
495 # VPP-VERIFY JOB TEMPLATE
497 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
499 project-type: freestyle
500 node: 'builder-{os}-prod-{executor-arch}'
504 - lf-infra-properties:
505 build-days-to-keep: "{build-days-to-keep}"
507 # Please keep parameters in alphabetical order
511 - gerrit-refspec-parameter:
512 refspec: '{branch-refspec}'
513 - make-parallel-jobs-parameter:
514 make-parallel-jobs: '{make-parallel-jobs}'
515 - make-test-os-parameter:
516 make-test-os: '{make-test-os}'
517 - make-test-multiworker-os-parameter:
518 make-test-multiworker-os: '{make-test-multiworker-os}'
527 - gerrit-trigger-scm:
528 credentials-id: 'jenkins-gerrit-credentials'
529 refspec: '$GERRIT_REFSPEC'
530 choosing-strategy: 'gerrit'
533 - fdio-infra-wrappers:
537 - gerrit-trigger-checkstyle:
544 - ../scripts/setup_executor_env.sh
547 - ../scripts/setup_vpp_ubuntu_docker_test.sh
550 - ../scripts/setup_vpp_ext_deps.sh
553 - ../scripts/vpp/build.sh
557 # [end] VPP-VERIFY JOB TEMPLATE
559 # VPP-DEBUG-VERIFY JOB TEMPLATE
561 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
563 project-type: freestyle
564 node: 'builder-{os}-prod-{executor-arch}'
568 - lf-infra-properties:
569 build-days-to-keep: "{build-days-to-keep}"
571 # Please keep parameters in alphabetical order
575 - gerrit-refspec-parameter:
576 refspec: '{branch-refspec}'
577 - make-parallel-jobs-parameter:
578 make-parallel-jobs: '{make-parallel-jobs}'
579 - make-test-os-parameter:
580 make-test-os: '{make-test-os}'
589 - gerrit-trigger-scm:
590 credentials-id: 'jenkins-gerrit-credentials'
591 refspec: '$GERRIT_REFSPEC'
592 choosing-strategy: 'gerrit'
595 - fdio-infra-wrappers:
596 build-timeout: '{build-timeout}'
599 - gerrit-trigger-checkstyle-nonvoting:
606 - ../scripts/setup_executor_env.sh
609 - ../scripts/setup_vpp_ubuntu_docker_test.sh
612 - ../scripts/setup_vpp_ext_deps.sh
615 - ../scripts/vpp/debug-build.sh
619 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
621 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
623 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
625 project-type: freestyle
626 node: 'builder-{os}-prod-{executor-arch}'
630 - lf-infra-properties:
631 build-days-to-keep: "{build-days-to-keep}"
633 # Please keep parameters in alphabetical order
637 - make-parallel-jobs-parameter:
638 make-parallel-jobs: '{make-parallel-jobs}'
639 - make-test-os-parameter:
640 make-test-os: '{make-test-os}'
649 - gerrit-trigger-scm:
650 credentials-id: 'jenkins-gerrit-credentials'
652 choosing-strategy: 'default'
655 - fdio-infra-wrappers:
656 build-timeout: '{build-timeout}'
659 - timed: '{periodicity}'
660 - gerrit-trigger-manually-triggered:
661 comment-trigger-value: '{comment-trigger-value}'
668 - ../scripts/setup_executor_env.sh
671 - ../scripts/setup_vpp_ubuntu_docker_test.sh
674 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
677 - vpp-dpdk-rdma-version-mismatch:
680 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
682 # VPP-MERGE JOB TEMPLATE
684 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
686 project-type: freestyle
687 node: 'builder-{os}-prod-{executor-arch}'
690 - lf-infra-properties:
691 build-days-to-keep: "{build-days-to-keep}"
693 # Please keep parameters in alphabetical order
697 - make-parallel-jobs-parameter:
698 make-parallel-jobs: '{make-parallel-jobs}'
699 - make-test-os-parameter:
700 make-test-os: '{make-test-os}'
701 - make-test-multiworker-os-parameter:
702 make-test-multiworker-os: '{make-test-multiworker-os}'
711 - gerrit-trigger-scm:
712 credentials-id: 'jenkins-gerrit-credentials'
714 choosing-strategy: 'default'
717 - fdio-infra-wrappers:
721 - gerrit-trigger-patch-merged:
726 - config-file-provider:
728 - file-id: '.packagecloud'
729 target: '/root/.packagecloud'
730 - config-file-provider:
732 - file-id: 'packagecloud_api'
733 target: '/root/packagecloud_api'
736 - ../scripts/setup_executor_env.sh
739 - ../scripts/setup_vpp_ubuntu_docker_test.sh
742 - ../scripts/setup_vpp_ext_deps.sh
745 - ../scripts/vpp/build.sh
748 - ../scripts/packagecloud_push.sh
752 # [end] VPP-MERGE JOB TEMPLATE
754 # VPP-GCC-VERIFY JOB TEMPLATE
756 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
758 project-type: freestyle
759 node: 'builder-{os}-prod-{executor-arch}'
763 - lf-infra-properties:
764 build-days-to-keep: "{build-days-to-keep}"
766 # Please keep parameters in alphabetical order
770 - gerrit-refspec-parameter:
771 refspec: '{branch-refspec}'
772 - make-parallel-jobs-parameter:
773 make-parallel-jobs: '{make-parallel-jobs}'
782 - gerrit-trigger-scm:
783 credentials-id: 'jenkins-gerrit-credentials'
784 refspec: '$GERRIT_REFSPEC'
785 choosing-strategy: 'gerrit'
788 - fdio-infra-wrappers:
792 - gerrit-trigger-checkstyle:
799 - ../scripts/setup_executor_env.sh
802 - ../scripts/setup_vpp_ubuntu_docker_test.sh
805 - ../scripts/setup_vpp_ext_deps.sh
808 - ../scripts/vpp/gcc-build.sh
812 # [end] VPP-GCC-VERIFY JOB TEMPLATE
814 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
816 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
821 <li>csit-builder-{os}-prod-{executor-arch}
823 <li>testbed architecture
829 project-type: freestyle
830 node: 'csit-builder-{os}-prod-{executor-arch}'
835 - lf-infra-properties:
836 build-days-to-keep: "{build-days-to-keep}"
838 # Please keep parameters in alphabetical order
840 - gerrit-csit-refspec-parameter
841 - gerrit-event-comment-text-parameter
842 - gerrit-event-type-parameter
845 - gerrit-refspec-parameter:
846 refspec: '{branch-refspec}'
847 - make-parallel-jobs-parameter:
848 make-parallel-jobs: '{make-parallel-jobs}'
857 - gerrit-trigger-scm:
858 credentials-id: 'jenkins-gerrit-credentials'
859 refspec: '$GERRIT_REFSPEC'
860 choosing-strategy: 'gerrit'
863 - fdio-infra-wrappers:
867 - 'gerrit-trigger-vpp-csit-devicetest-full':
870 skip-vote: '{skip-vote}'
875 - ../scripts/setup_executor_env.sh
878 - ../scripts/setup_vpp_ubuntu_docker_test.sh
881 - ../scripts/setup_vpp_ext_deps.sh
884 - ../scripts/vpp/csit-device.sh
888 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
890 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
892 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
897 <li>builder-{os}-prod-{executor-arch}
899 <li>testbed architecture
904 Contrary to csit-vpp job, this also measures the parent performance,
905 and fails if performance regression is detected.
906 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
909 project-type: freestyle
910 node: 'builder-{os}-prod-{executor-arch}'
915 - lf-infra-properties:
916 build-days-to-keep: "{build-days-to-keep}"
918 # Please keep parameters in alphabetical order
920 - csit-perf-trial-duration-parameter:
921 csit-perf-trial-duration: "10.0"
922 - csit-perf-trial-multiplicity-parameter:
923 csit-perf-trial-multiplicity: "5"
924 - gerrit-csit-refspec-parameter
925 - gerrit-event-comment-text-parameter
926 - gerrit-event-type-parameter
927 - gerrit-refspec-parameter:
928 refspec: '{branch-refspec}'
931 - make-parallel-jobs-parameter:
932 make-parallel-jobs: '{make-parallel-jobs}'
941 - gerrit-trigger-scm:
942 credentials-id: 'jenkins-gerrit-credentials'
943 refspec: '$GERRIT_REFSPEC'
944 choosing-strategy: 'gerrit'
947 - fdio-infra-wrappers-non-activity-timeout:
951 - gerrit-trigger-csit-perftest:
954 trigger-word: 'perftest-{testbed-arch}'
960 - ../scripts/setup_executor_env.sh
963 - ../scripts/setup_vpp_ubuntu_docker_test.sh
966 - ../scripts/setup_vpp_ext_deps.sh
969 - ../scripts/vpp/csit-perf.sh
973 # Can be removed when all CSIT branches use correct archive directory.
984 - ../scripts/vpp/copy_archives.sh
986 output-path: 'archives/csit_current/0/'
989 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
991 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
993 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
995 project-type: freestyle
996 node: 'builder-{os}-prod-{executor-arch}'
1001 - lf-infra-properties:
1002 build-days-to-keep: "{build-days-to-keep}"
1004 # Please keep parameters in alphabetical order
1006 # Not sure whether not failing has any useful usage,
1007 # but it does not hurt to have some flexibility for future.
1008 - csit-fail-on-crc-mismatch-parameter:
1009 fail-on-crc-mismatch: 'True'
1010 - gerrit-csit-refspec-parameter
1013 - gerrit-refspec-parameter:
1014 refspec: '{branch-refspec}'
1015 - project-parameter:
1016 project: '{project}'
1021 - gerrit-trigger-scm:
1022 credentials-id: 'jenkins-gerrit-credentials'
1023 refspec: '$GERRIT_REFSPEC'
1024 choosing-strategy: 'gerrit'
1027 - fdio-infra-wrappers-non-activity-timeout:
1031 - gerrit-trigger-checkstyle:
1037 !include-raw-escape:
1038 - ../scripts/setup_executor_env.sh
1040 !include-raw-escape:
1041 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1043 !include-raw-escape:
1044 - ../scripts/vpp/check_crc.sh
1045 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1048 - fdio-infra-publish
1049 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1050 # [end] JOB TEMPLATE DEFINITIONS