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 22.10
57 # 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/2210'
103 make-test-os: 'ubuntu-20.04'
104 make-test-multiworker-os: 'debian-11'
110 executor-arch: 'x86_64'
112 # os deprecated in 22.06
115 # os deprecated in 22.10
118 # os deprecated in master
130 # [end] VPP-X86_64 PROJECT
132 # VPP-DEBUG-X86_64 PROJECT
134 # Currently a periodic job due to intermittent failures.
135 # Limiting branches to master, since other branches
136 # may not get fixes for the intermittent failures.
139 name: vpp-debug-x86_64
141 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
143 make-parallel-jobs: '4'
144 make-test-os: 'ubuntu-22.04'
145 comment-trigger-value: 'debug-verify'
151 periodicity: 'H * * * *'
153 executor-arch: 'x86_64'
155 # [end] VPP-DEBUG-X86_64 PROJECT
157 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
159 # Currently a periodic job due to intermittent failures.
160 # Limiting branches to master, since other branches
161 # may not get fixes for the intermittent failures.
164 name: vpp-dpdk-rdma-version-mismatch-x86_64
166 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
168 make-test-os: 'ubuntu-22.04'
169 comment-trigger-value: 'dpdk-rdma-version-mismatch'
173 # Once per day at 00:15
174 periodicity: '15 0 * * 0-6'
176 executor-arch: 'x86_64'
178 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
180 # VPP-GCC-X86_64 PROJECT
184 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
186 make-parallel-jobs: '4'
190 executor-arch: 'x86_64'
196 branch: 'stable/2202'
199 branch: 'stable/2206'
202 branch: 'stable/2210'
205 # os deprecated in 22.10
208 # os deprecated in master
217 # [end] VPP-GCC-X86_64 PROJECT
219 # VPP-AARCH64 PROJECT
221 # NOTE: The list of supported branches for each OS are maintained
222 # in .../ci-management/docker/scripts/lib_vpp.sh
223 # The job configuration must be derived from that list, thus
224 # modifications to both should be made at the same time.
225 # The AARCH64 architecture is in the process of catching up
226 # with X86_64 in terms of OS coverage. Thus the jobs are
227 # a subset of those defined in the docker image build script.
231 - 'vpp-verify-{stream}-{os}-{executor-arch}'
232 - 'vpp-merge-{stream}-{os}-{executor-arch}'
234 make-parallel-jobs: '4'
239 make-test-os: 'ubuntu-22.04'
240 make-test-multiworker-os: ''
242 branch: 'stable/2202'
244 make-test-os: 'ubuntu-20.04'
245 make-test-multiworker-os: ''
247 branch: 'stable/2206'
249 make-test-os: 'ubuntu-20.04'
250 make-test-multiworker-os: ''
252 branch: 'stable/2210'
254 make-test-os: 'ubuntu-20.04'
255 make-test-multiworker-os: ''
259 executor-arch: 'aarch64'
267 # [end] VPP-AARCH64 PROJECT
269 # VPP-CSIT-VERIFY-DEVICE PROJECT
271 name: vpp-csit-verify-device
273 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
274 make-parallel-jobs: '32'
282 branch: 'stable/2210'
287 executor-arch: 'x86_64'
290 executor-arch: 'aarch64'
292 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
294 # VPP-CSIT-VERIFY-PERF PROJECT
296 name: vpp-csit-verify-perf
298 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
308 executor-arch: 'x86_64'
311 executor-arch: 'x86_64'
314 executor-arch: 'x86_64'
317 executor-arch: 'x86_64'
320 executor-arch: 'x86_64'
323 executor-arch: 'x86_64'
326 executor-arch: 'aarch64'
327 make-parallel-jobs: '16'
330 executor-arch: 'aarch64'
331 make-parallel-jobs: '16'
334 executor-arch: 'aarch64'
335 make-parallel-jobs: '16'
338 executor-arch: 'x86_64'
339 # [end] VPP-CSIT-VERIFY-PERF PROJECT
341 # VPP-CSIT-API-CRC PROJECT
343 # Only master and LTS branches are supported.
346 name: vpp-csit-api-crc
348 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
350 executor-arch: 'x86_64'
357 branch: 'stable/2202'
360 branch: 'stable/2206'
363 branch: 'stable/2210'
369 # os deprecated in 22.10
372 # os deprecated in master
381 # [end] VPP-CSIT-API-CRC PROJECT
383 # LF RELENG VPP PROJECTS
388 - gerrit-info-yaml-verify
389 build-node: centos7-builder-2c-2g
398 # [end] LF RELENG VPP PROJECTS
399 # [end] PROJECT DEFINITIONS
401 # JOB TEMPLATE DEFINITIONS
403 # Please keep job templates in the same order as they are referenced
404 # in the project definitions above.
406 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
408 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
410 project-type: freestyle
411 node: 'builder-{os}-prod-{executor-arch}'
415 - lf-infra-properties:
416 build-days-to-keep: "{build-days-to-keep}"
418 # Please keep parameters in alphabetical order
422 - gerrit-refspec-parameter:
423 refspec: '{branch-refspec}'
430 - gerrit-trigger-scm:
431 credentials-id: 'jenkins-gerrit-credentials'
432 refspec: '$GERRIT_REFSPEC'
433 choosing-strategy: 'gerrit'
436 - fdio-infra-wrappers:
437 build-timeout: '{build-timeout}'
438 - credentials-binding:
440 credential-id: VppApiCompatNotify
441 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
445 server-name: 'Primary'
447 - patchset-created-event:
448 exclude-drafts: 'true'
449 exclude-trivial-rebase: 'false'
450 exclude-no-code-change: 'false'
451 - draft-published-event
452 - comment-added-contains-event:
453 comment-contains-value: 'checkstylecheck'
454 - comment-added-contains-event:
455 comment-contains-value: 'docsonly'
456 - comment-added-contains-event:
457 comment-contains-value: 'recheck'
458 - comment-added-contains-event:
459 comment-contains-value: 'reverify'
460 # Following two are to cover missing functions of drafts
461 # going to review status
462 - comment-added-contains-event:
463 comment-contains-value: 'runtest'
464 - comment-added-contains-event:
465 comment-contains-value: 'This change is ready for review'
467 - project-compare-type: 'ANT'
468 project-pattern: '{project}'
470 - branch-compare-type: 'ANT'
471 branch-pattern: '**/{branch}'
473 - compare-type: REG_EXP
474 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
475 forbidden-file-paths:
476 - compare-type: REG_EXP
477 pattern: .*extras\/emacs\/.*
478 disable-strict-forbidden-file-verification: 'true'
480 gerrit-build-notbuilt-verified-value: 0
481 gerrit-build-successful-verified-value: 1
482 # yamllint disable-line rule:line-length
483 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
484 # yamllint disable-line rule:line-length
485 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
486 successful-message: 'checkstyle_success'
496 - ../scripts/setup_executor_env.sh
499 - ../scripts/vpp/checkstyle.sh
502 - ../scripts/vpp/test-checkstyle.sh
505 - ../scripts/vpp/api-checkstyle.sh
508 - ../scripts/vpp/commitmsg.sh
511 - ../scripts/vpp/docs_spell.sh
516 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
518 # VPP-VERIFY JOB TEMPLATE
520 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
522 project-type: freestyle
523 node: 'builder-{os}-prod-{executor-arch}'
527 - lf-infra-properties:
528 build-days-to-keep: "{build-days-to-keep}"
530 # Please keep parameters in alphabetical order
534 - gerrit-refspec-parameter:
535 refspec: '{branch-refspec}'
536 - make-parallel-jobs-parameter:
537 make-parallel-jobs: '{make-parallel-jobs}'
538 - make-test-os-parameter:
539 make-test-os: '{make-test-os}'
540 - make-test-multiworker-os-parameter:
541 make-test-multiworker-os: '{make-test-multiworker-os}'
550 - gerrit-trigger-scm:
551 credentials-id: 'jenkins-gerrit-credentials'
552 refspec: '$GERRIT_REFSPEC'
553 choosing-strategy: 'gerrit'
556 - fdio-infra-wrappers:
560 - gerrit-trigger-checkstyle:
567 - ../scripts/setup_executor_env.sh
570 - ../scripts/setup_vpp_ubuntu_docker_test.sh
573 - ../scripts/setup_vpp_ext_deps.sh
576 - ../scripts/vpp/build.sh
580 # [end] VPP-VERIFY JOB TEMPLATE
582 # VPP-DEBUG-VERIFY JOB TEMPLATE
584 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
586 project-type: freestyle
587 node: 'builder-{os}-prod-{executor-arch}'
591 - lf-infra-properties:
592 build-days-to-keep: "{build-days-to-keep}"
594 # Please keep parameters in alphabetical order
598 - gerrit-refspec-parameter:
599 refspec: '{branch-refspec}'
600 - make-parallel-jobs-parameter:
601 make-parallel-jobs: '{make-parallel-jobs}'
602 - make-test-os-parameter:
603 make-test-os: '{make-test-os}'
612 - gerrit-trigger-scm:
613 credentials-id: 'jenkins-gerrit-credentials'
614 refspec: '$GERRIT_REFSPEC'
615 choosing-strategy: 'gerrit'
618 - fdio-infra-wrappers:
619 build-timeout: '{build-timeout}'
622 - timed: '{periodicity}'
623 - gerrit-trigger-manually-triggered:
624 comment-trigger-value: '{comment-trigger-value}'
631 - ../scripts/setup_executor_env.sh
634 - ../scripts/setup_vpp_ubuntu_docker_test.sh
637 - ../scripts/setup_vpp_ext_deps.sh
640 - ../scripts/vpp/debug-build.sh
644 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
646 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
648 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
650 project-type: freestyle
651 node: 'builder-{os}-prod-{executor-arch}'
655 - lf-infra-properties:
656 build-days-to-keep: "{build-days-to-keep}"
658 # Please keep parameters in alphabetical order
662 - make-parallel-jobs-parameter:
663 make-parallel-jobs: '{make-parallel-jobs}'
664 - make-test-os-parameter:
665 make-test-os: '{make-test-os}'
674 - gerrit-trigger-scm:
675 credentials-id: 'jenkins-gerrit-credentials'
677 choosing-strategy: 'default'
680 - fdio-infra-wrappers:
681 build-timeout: '{build-timeout}'
684 - timed: '{periodicity}'
685 - gerrit-trigger-manually-triggered:
686 comment-trigger-value: '{comment-trigger-value}'
693 - ../scripts/setup_executor_env.sh
696 - ../scripts/setup_vpp_ubuntu_docker_test.sh
699 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
702 - vpp-dpdk-rdma-version-mismatch:
705 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
707 # VPP-MERGE JOB TEMPLATE
709 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
711 project-type: freestyle
712 node: 'builder-{os}-prod-{executor-arch}'
715 - lf-infra-properties:
716 build-days-to-keep: "{build-days-to-keep}"
718 # Please keep parameters in alphabetical order
722 - make-parallel-jobs-parameter:
723 make-parallel-jobs: '{make-parallel-jobs}'
724 - make-test-os-parameter:
725 make-test-os: '{make-test-os}'
726 - make-test-multiworker-os-parameter:
727 make-test-multiworker-os: '{make-test-multiworker-os}'
736 - gerrit-trigger-scm:
737 credentials-id: 'jenkins-gerrit-credentials'
739 choosing-strategy: 'default'
742 - fdio-infra-wrappers:
746 - gerrit-trigger-patch-merged:
751 - config-file-provider:
753 - file-id: '.packagecloud'
754 target: '/root/.packagecloud'
755 - config-file-provider:
757 - file-id: 'packagecloud_api'
758 target: '/root/packagecloud_api'
761 - ../scripts/setup_executor_env.sh
764 - ../scripts/setup_vpp_ubuntu_docker_test.sh
767 - ../scripts/setup_vpp_ext_deps.sh
770 - ../scripts/vpp/build.sh
773 - ../scripts/packagecloud_push.sh
777 # [end] VPP-MERGE JOB TEMPLATE
779 # VPP-GCC-VERIFY JOB TEMPLATE
781 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
783 project-type: freestyle
784 node: 'builder-{os}-prod-{executor-arch}'
788 - lf-infra-properties:
789 build-days-to-keep: "{build-days-to-keep}"
791 # Please keep parameters in alphabetical order
795 - gerrit-refspec-parameter:
796 refspec: '{branch-refspec}'
797 - make-parallel-jobs-parameter:
798 make-parallel-jobs: '{make-parallel-jobs}'
807 - gerrit-trigger-scm:
808 credentials-id: 'jenkins-gerrit-credentials'
809 refspec: '$GERRIT_REFSPEC'
810 choosing-strategy: 'gerrit'
813 - fdio-infra-wrappers:
817 - gerrit-trigger-checkstyle:
824 - ../scripts/setup_executor_env.sh
827 - ../scripts/setup_vpp_ubuntu_docker_test.sh
830 - ../scripts/setup_vpp_ext_deps.sh
833 - ../scripts/vpp/gcc-build.sh
837 # [end] VPP-GCC-VERIFY JOB TEMPLATE
839 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
841 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
846 <li>csit-builder-{os}-prod-{executor-arch}
848 <li>testbed architecture
854 project-type: freestyle
855 node: 'csit-builder-{os}-prod-{executor-arch}'
860 - lf-infra-properties:
861 build-days-to-keep: "{build-days-to-keep}"
863 # Please keep parameters in alphabetical order
865 - gerrit-csit-refspec-parameter
866 - gerrit-event-comment-text-parameter
867 - gerrit-event-type-parameter
870 - gerrit-refspec-parameter:
871 refspec: '{branch-refspec}'
872 - make-parallel-jobs-parameter:
873 make-parallel-jobs: '{make-parallel-jobs}'
882 - gerrit-trigger-scm:
883 credentials-id: 'jenkins-gerrit-credentials'
884 refspec: '$GERRIT_REFSPEC'
885 choosing-strategy: 'gerrit'
888 - fdio-infra-wrappers:
892 - 'gerrit-trigger-vpp-csit-devicetest-full':
895 skip-vote: '{skip-vote}'
900 - ../scripts/setup_executor_env.sh
903 - ../scripts/setup_vpp_ubuntu_docker_test.sh
906 - ../scripts/setup_vpp_ext_deps.sh
909 - ../scripts/vpp/csit-device.sh
913 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
915 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
917 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
922 <li>builder-{os}-prod-{executor-arch}
924 <li>testbed architecture
929 Contrary to csit-vpp job, this also measures the parent performance,
930 and fails if performance regression is detected.
931 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
934 project-type: freestyle
935 node: 'builder-{os}-prod-{executor-arch}'
940 - lf-infra-properties:
941 build-days-to-keep: "{build-days-to-keep}"
943 # Please keep parameters in alphabetical order
945 - csit-perf-trial-duration-parameter:
946 csit-perf-trial-duration: "10.0"
947 - csit-perf-trial-multiplicity-parameter:
948 csit-perf-trial-multiplicity: "5"
949 - gerrit-csit-refspec-parameter
950 - gerrit-event-comment-text-parameter
951 - gerrit-event-type-parameter
952 - gerrit-refspec-parameter:
953 refspec: '{branch-refspec}'
956 - make-parallel-jobs-parameter:
957 make-parallel-jobs: '{make-parallel-jobs}'
966 - gerrit-trigger-scm:
967 credentials-id: 'jenkins-gerrit-credentials'
968 refspec: '$GERRIT_REFSPEC'
969 choosing-strategy: 'gerrit'
972 - fdio-infra-wrappers-non-activity-timeout:
976 - gerrit-trigger-csit-perftest:
979 trigger-word: 'perftest-{testbed-arch}'
985 - ../scripts/setup_executor_env.sh
988 - ../scripts/setup_vpp_ubuntu_docker_test.sh
991 - ../scripts/setup_vpp_ext_deps.sh
994 - ../scripts/vpp/csit-perf.sh
998 # Can be removed when all CSIT branches use correct archive directory.
1008 !include-raw-escape:
1009 - ../scripts/vpp/copy_archives.sh
1011 output-path: 'archives/csit_current/0/'
1013 - fdio-infra-publish
1014 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1016 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1018 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1020 project-type: freestyle
1021 node: 'builder-{os}-prod-{executor-arch}'
1026 - lf-infra-properties:
1027 build-days-to-keep: "{build-days-to-keep}"
1029 # Please keep parameters in alphabetical order
1031 # Not sure whether not failing has any useful usage,
1032 # but it does not hurt to have some flexibility for future.
1033 - csit-fail-on-crc-mismatch-parameter:
1034 fail-on-crc-mismatch: 'True'
1035 - gerrit-csit-refspec-parameter
1038 - gerrit-refspec-parameter:
1039 refspec: '{branch-refspec}'
1040 - project-parameter:
1041 project: '{project}'
1046 - gerrit-trigger-scm:
1047 credentials-id: 'jenkins-gerrit-credentials'
1048 refspec: '$GERRIT_REFSPEC'
1049 choosing-strategy: 'gerrit'
1052 - fdio-infra-wrappers-non-activity-timeout:
1056 - gerrit-trigger-checkstyle:
1062 !include-raw-escape:
1063 - ../scripts/setup_executor_env.sh
1065 !include-raw-escape:
1066 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1068 !include-raw-escape:
1069 - ../scripts/vpp/check_crc.sh
1070 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1073 - fdio-infra-publish
1074 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1075 # [end] JOB TEMPLATE DEFINITIONS