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'
150 make-test-os: 'ubuntu-22.04'
152 executor-arch: 'x86_64'
154 # [end] VPP-DEBUG-X86_64 PROJECT
156 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
158 # Currently a periodic job due to intermittent failures.
159 # Limiting branches to master, since other branches
160 # may not get fixes for the intermittent failures.
163 name: vpp-dpdk-rdma-version-mismatch-x86_64
165 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
167 make-test-os: 'ubuntu-22.04'
168 comment-trigger-value: 'dpdk-rdma-version-mismatch'
172 # Once per day at 00:15
173 periodicity: '15 0 * * 0-6'
175 executor-arch: 'x86_64'
177 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
179 # VPP-GCC-X86_64 PROJECT
183 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
185 make-parallel-jobs: '4'
189 executor-arch: 'x86_64'
195 branch: 'stable/2202'
198 branch: 'stable/2206'
201 branch: 'stable/2210'
204 # os deprecated in 22.10
207 # os deprecated in master
216 # [end] VPP-GCC-X86_64 PROJECT
218 # VPP-AARCH64 PROJECT
220 # NOTE: The list of supported branches for each OS are maintained
221 # in .../ci-management/docker/scripts/lib_vpp.sh
222 # The job configuration must be derived from that list, thus
223 # modifications to both should be made at the same time.
224 # The AARCH64 architecture is in the process of catching up
225 # with X86_64 in terms of OS coverage. Thus the jobs are
226 # a subset of those defined in the docker image build script.
230 - 'vpp-verify-{stream}-{os}-{executor-arch}'
231 - 'vpp-merge-{stream}-{os}-{executor-arch}'
233 make-parallel-jobs: '4'
238 make-test-os: 'ubuntu-22.04'
239 make-test-multiworker-os: ''
241 branch: 'stable/2202'
243 make-test-os: 'ubuntu-20.04'
244 make-test-multiworker-os: ''
246 branch: 'stable/2206'
248 make-test-os: 'ubuntu-20.04'
249 make-test-multiworker-os: ''
251 branch: 'stable/2210'
253 make-test-os: 'ubuntu-20.04'
254 make-test-multiworker-os: ''
258 executor-arch: 'aarch64'
266 # [end] VPP-AARCH64 PROJECT
268 # VPP-CSIT-VERIFY-DEVICE PROJECT
270 name: vpp-csit-verify-device
272 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
273 make-parallel-jobs: '32'
281 branch: 'stable/2210'
286 executor-arch: 'x86_64'
289 executor-arch: 'aarch64'
291 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
293 # VPP-CSIT-VERIFY-PERF PROJECT
295 name: vpp-csit-verify-perf
297 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
307 executor-arch: 'x86_64'
310 executor-arch: 'x86_64'
313 executor-arch: 'x86_64'
316 executor-arch: 'x86_64'
319 executor-arch: 'x86_64'
322 executor-arch: 'x86_64'
325 executor-arch: 'aarch64'
326 make-parallel-jobs: '16'
329 executor-arch: 'aarch64'
330 make-parallel-jobs: '16'
333 executor-arch: 'aarch64'
334 make-parallel-jobs: '16'
337 executor-arch: 'x86_64'
338 # [end] VPP-CSIT-VERIFY-PERF PROJECT
340 # VPP-CSIT-API-CRC PROJECT
342 # Only master and LTS branches are supported.
345 name: vpp-csit-api-crc
347 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
349 executor-arch: 'x86_64'
356 branch: 'stable/2202'
359 branch: 'stable/2206'
362 branch: 'stable/2210'
368 # os deprecated in 22.10
371 # os deprecated in master
380 # [end] VPP-CSIT-API-CRC PROJECT
382 # LF RELENG VPP PROJECTS
387 - gerrit-info-yaml-verify
388 build-node: centos7-builder-2c-2g
397 # [end] LF RELENG VPP PROJECTS
398 # [end] PROJECT DEFINITIONS
400 # JOB TEMPLATE DEFINITIONS
402 # Please keep job templates in the same order as they are referenced
403 # in the project definitions above.
405 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
407 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
409 project-type: freestyle
410 node: 'builder-{os}-prod-{executor-arch}'
414 - lf-infra-properties:
415 build-days-to-keep: "{build-days-to-keep}"
417 # Please keep parameters in alphabetical order
421 - gerrit-refspec-parameter:
422 refspec: '{branch-refspec}'
429 - gerrit-trigger-scm:
430 credentials-id: 'jenkins-gerrit-credentials'
431 refspec: '$GERRIT_REFSPEC'
432 choosing-strategy: 'gerrit'
435 - fdio-infra-wrappers:
436 build-timeout: '{build-timeout}'
437 - credentials-binding:
439 credential-id: VppApiCompatNotify
440 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
444 server-name: 'Primary'
446 - patchset-created-event:
447 exclude-drafts: 'true'
448 exclude-trivial-rebase: 'false'
449 exclude-no-code-change: 'false'
450 - draft-published-event
451 - comment-added-contains-event:
452 comment-contains-value: 'checkstylecheck'
453 - comment-added-contains-event:
454 comment-contains-value: 'docsonly'
455 - comment-added-contains-event:
456 comment-contains-value: 'recheck'
457 - comment-added-contains-event:
458 comment-contains-value: 'reverify'
459 # Following two are to cover missing functions of drafts
460 # going to review status
461 - comment-added-contains-event:
462 comment-contains-value: 'runtest'
463 - comment-added-contains-event:
464 comment-contains-value: 'This change is ready for review'
466 - project-compare-type: 'ANT'
467 project-pattern: '{project}'
469 - branch-compare-type: 'ANT'
470 branch-pattern: '**/{branch}'
472 - compare-type: REG_EXP
473 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
474 forbidden-file-paths:
475 - compare-type: REG_EXP
476 pattern: .*extras\/emacs\/.*
477 disable-strict-forbidden-file-verification: 'true'
479 gerrit-build-notbuilt-verified-value: 0
480 gerrit-build-successful-verified-value: 1
481 # yamllint disable-line rule:line-length
482 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
483 # yamllint disable-line rule:line-length
484 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
485 successful-message: 'checkstyle_success'
495 - ../scripts/setup_executor_env.sh
498 - ../scripts/vpp/checkstyle.sh
501 - ../scripts/vpp/test-checkstyle.sh
504 - ../scripts/vpp/api-checkstyle.sh
507 - ../scripts/vpp/commitmsg.sh
510 - ../scripts/vpp/docs_spell.sh
515 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
517 # VPP-VERIFY JOB TEMPLATE
519 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
521 project-type: freestyle
522 node: 'builder-{os}-prod-{executor-arch}'
526 - lf-infra-properties:
527 build-days-to-keep: "{build-days-to-keep}"
529 # Please keep parameters in alphabetical order
533 - gerrit-refspec-parameter:
534 refspec: '{branch-refspec}'
535 - make-parallel-jobs-parameter:
536 make-parallel-jobs: '{make-parallel-jobs}'
537 - make-test-os-parameter:
538 make-test-os: '{make-test-os}'
539 - make-test-multiworker-os-parameter:
540 make-test-multiworker-os: '{make-test-multiworker-os}'
549 - gerrit-trigger-scm:
550 credentials-id: 'jenkins-gerrit-credentials'
551 refspec: '$GERRIT_REFSPEC'
552 choosing-strategy: 'gerrit'
555 - fdio-infra-wrappers:
559 - gerrit-trigger-checkstyle:
566 - ../scripts/setup_executor_env.sh
569 - ../scripts/setup_vpp_ubuntu_docker_test.sh
572 - ../scripts/setup_vpp_ext_deps.sh
575 - ../scripts/vpp/build.sh
579 # [end] VPP-VERIFY JOB TEMPLATE
581 # VPP-DEBUG-VERIFY JOB TEMPLATE
583 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
585 project-type: freestyle
586 node: 'builder-{os}-prod-{executor-arch}'
590 - lf-infra-properties:
591 build-days-to-keep: "{build-days-to-keep}"
593 # Please keep parameters in alphabetical order
597 - gerrit-refspec-parameter:
598 refspec: '{branch-refspec}'
599 - make-parallel-jobs-parameter:
600 make-parallel-jobs: '{make-parallel-jobs}'
601 - make-test-os-parameter:
602 make-test-os: '{make-test-os}'
611 - gerrit-trigger-scm:
612 credentials-id: 'jenkins-gerrit-credentials'
613 refspec: '$GERRIT_REFSPEC'
614 choosing-strategy: 'gerrit'
617 - fdio-infra-wrappers:
618 build-timeout: '{build-timeout}'
621 - gerrit-trigger-checkstyle-nonvoting:
628 - ../scripts/setup_executor_env.sh
631 - ../scripts/setup_vpp_ubuntu_docker_test.sh
634 - ../scripts/setup_vpp_ext_deps.sh
637 - ../scripts/vpp/debug-build.sh
641 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
643 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
645 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
647 project-type: freestyle
648 node: 'builder-{os}-prod-{executor-arch}'
652 - lf-infra-properties:
653 build-days-to-keep: "{build-days-to-keep}"
655 # Please keep parameters in alphabetical order
659 - make-parallel-jobs-parameter:
660 make-parallel-jobs: '{make-parallel-jobs}'
661 - make-test-os-parameter:
662 make-test-os: '{make-test-os}'
671 - gerrit-trigger-scm:
672 credentials-id: 'jenkins-gerrit-credentials'
674 choosing-strategy: 'default'
677 - fdio-infra-wrappers:
678 build-timeout: '{build-timeout}'
681 - timed: '{periodicity}'
682 - gerrit-trigger-manually-triggered:
683 comment-trigger-value: '{comment-trigger-value}'
690 - ../scripts/setup_executor_env.sh
693 - ../scripts/setup_vpp_ubuntu_docker_test.sh
696 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
699 - vpp-dpdk-rdma-version-mismatch:
702 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
704 # VPP-MERGE JOB TEMPLATE
706 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
708 project-type: freestyle
709 node: 'builder-{os}-prod-{executor-arch}'
712 - lf-infra-properties:
713 build-days-to-keep: "{build-days-to-keep}"
715 # Please keep parameters in alphabetical order
719 - make-parallel-jobs-parameter:
720 make-parallel-jobs: '{make-parallel-jobs}'
721 - make-test-os-parameter:
722 make-test-os: '{make-test-os}'
723 - make-test-multiworker-os-parameter:
724 make-test-multiworker-os: '{make-test-multiworker-os}'
733 - gerrit-trigger-scm:
734 credentials-id: 'jenkins-gerrit-credentials'
736 choosing-strategy: 'default'
739 - fdio-infra-wrappers:
743 - gerrit-trigger-patch-merged:
748 - config-file-provider:
750 - file-id: '.packagecloud'
751 target: '/root/.packagecloud'
752 - config-file-provider:
754 - file-id: 'packagecloud_api'
755 target: '/root/packagecloud_api'
758 - ../scripts/setup_executor_env.sh
761 - ../scripts/setup_vpp_ubuntu_docker_test.sh
764 - ../scripts/setup_vpp_ext_deps.sh
767 - ../scripts/vpp/build.sh
770 - ../scripts/packagecloud_push.sh
774 # [end] VPP-MERGE JOB TEMPLATE
776 # VPP-GCC-VERIFY JOB TEMPLATE
778 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
780 project-type: freestyle
781 node: 'builder-{os}-prod-{executor-arch}'
785 - lf-infra-properties:
786 build-days-to-keep: "{build-days-to-keep}"
788 # Please keep parameters in alphabetical order
792 - gerrit-refspec-parameter:
793 refspec: '{branch-refspec}'
794 - make-parallel-jobs-parameter:
795 make-parallel-jobs: '{make-parallel-jobs}'
804 - gerrit-trigger-scm:
805 credentials-id: 'jenkins-gerrit-credentials'
806 refspec: '$GERRIT_REFSPEC'
807 choosing-strategy: 'gerrit'
810 - fdio-infra-wrappers:
814 - gerrit-trigger-checkstyle:
821 - ../scripts/setup_executor_env.sh
824 - ../scripts/setup_vpp_ubuntu_docker_test.sh
827 - ../scripts/setup_vpp_ext_deps.sh
830 - ../scripts/vpp/gcc-build.sh
834 # [end] VPP-GCC-VERIFY JOB TEMPLATE
836 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
838 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
843 <li>csit-builder-{os}-prod-{executor-arch}
845 <li>testbed architecture
851 project-type: freestyle
852 node: 'csit-builder-{os}-prod-{executor-arch}'
857 - lf-infra-properties:
858 build-days-to-keep: "{build-days-to-keep}"
860 # Please keep parameters in alphabetical order
862 - gerrit-csit-refspec-parameter
863 - gerrit-event-comment-text-parameter
864 - gerrit-event-type-parameter
867 - gerrit-refspec-parameter:
868 refspec: '{branch-refspec}'
869 - make-parallel-jobs-parameter:
870 make-parallel-jobs: '{make-parallel-jobs}'
879 - gerrit-trigger-scm:
880 credentials-id: 'jenkins-gerrit-credentials'
881 refspec: '$GERRIT_REFSPEC'
882 choosing-strategy: 'gerrit'
885 - fdio-infra-wrappers:
889 - 'gerrit-trigger-vpp-csit-devicetest-full':
892 skip-vote: '{skip-vote}'
897 - ../scripts/setup_executor_env.sh
900 - ../scripts/setup_vpp_ubuntu_docker_test.sh
903 - ../scripts/setup_vpp_ext_deps.sh
906 - ../scripts/vpp/csit-device.sh
910 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
912 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
914 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
919 <li>builder-{os}-prod-{executor-arch}
921 <li>testbed architecture
926 Contrary to csit-vpp job, this also measures the parent performance,
927 and fails if performance regression is detected.
928 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
931 project-type: freestyle
932 node: 'builder-{os}-prod-{executor-arch}'
937 - lf-infra-properties:
938 build-days-to-keep: "{build-days-to-keep}"
940 # Please keep parameters in alphabetical order
942 - csit-perf-trial-duration-parameter:
943 csit-perf-trial-duration: "10.0"
944 - csit-perf-trial-multiplicity-parameter:
945 csit-perf-trial-multiplicity: "5"
946 - gerrit-csit-refspec-parameter
947 - gerrit-event-comment-text-parameter
948 - gerrit-event-type-parameter
949 - gerrit-refspec-parameter:
950 refspec: '{branch-refspec}'
953 - make-parallel-jobs-parameter:
954 make-parallel-jobs: '{make-parallel-jobs}'
963 - gerrit-trigger-scm:
964 credentials-id: 'jenkins-gerrit-credentials'
965 refspec: '$GERRIT_REFSPEC'
966 choosing-strategy: 'gerrit'
969 - fdio-infra-wrappers-non-activity-timeout:
973 - gerrit-trigger-csit-perftest:
976 trigger-word: 'perftest-{testbed-arch}'
982 - ../scripts/setup_executor_env.sh
985 - ../scripts/setup_vpp_ubuntu_docker_test.sh
988 - ../scripts/setup_vpp_ext_deps.sh
991 - ../scripts/vpp/csit-perf.sh
995 # Can be removed when all CSIT branches use correct archive directory.
1005 !include-raw-escape:
1006 - ../scripts/vpp/copy_archives.sh
1008 output-path: 'archives/csit_current/0/'
1010 - fdio-infra-publish
1011 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1013 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1015 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1017 project-type: freestyle
1018 node: 'builder-{os}-prod-{executor-arch}'
1023 - lf-infra-properties:
1024 build-days-to-keep: "{build-days-to-keep}"
1026 # Please keep parameters in alphabetical order
1028 # Not sure whether not failing has any useful usage,
1029 # but it does not hurt to have some flexibility for future.
1030 - csit-fail-on-crc-mismatch-parameter:
1031 fail-on-crc-mismatch: 'True'
1032 - gerrit-csit-refspec-parameter
1035 - gerrit-refspec-parameter:
1036 refspec: '{branch-refspec}'
1037 - project-parameter:
1038 project: '{project}'
1043 - gerrit-trigger-scm:
1044 credentials-id: 'jenkins-gerrit-credentials'
1045 refspec: '$GERRIT_REFSPEC'
1046 choosing-strategy: 'gerrit'
1049 - fdio-infra-wrappers-non-activity-timeout:
1053 - gerrit-trigger-checkstyle:
1059 !include-raw-escape:
1060 - ../scripts/setup_executor_env.sh
1062 !include-raw-escape:
1063 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1065 !include-raw-escape:
1066 - ../scripts/vpp/check_crc.sh
1067 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1070 - fdio-infra-publish
1071 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1072 # [end] JOB TEMPLATE DEFINITIONS