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}'
52 executor-arch: 'x86_64'
54 # os deprecated in 23.06
57 # os deprecated in 23.02
60 # os deprecated in 22.10
63 # os deprecated in master
67 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
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.
81 - 'vpp-verify-{stream}-{os}-{executor-arch}'
82 - 'vpp-merge-{stream}-{os}-{executor-arch}'
84 make-parallel-jobs: '4'
89 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
90 make-test-multiworker-os: 'debian-11'
94 make-test-os: 'ubuntu-20.04'
95 make-test-multiworker-os: 'debian-11'
99 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
100 make-test-multiworker-os: 'debian-11'
102 branch: 'stable/2306'
104 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
105 make-test-multiworker-os: 'debian-11'
110 executor-arch: 'x86_64'
111 # [end] VPP-X86_64 PROJECT
113 # VPP-DEBUG-X86_64 PROJECT
115 # Currently a periodic job due to intermittent failures.
116 # Limiting branches to master, since other branches
117 # may not get fixes for the intermittent failures.
120 name: vpp-debug-x86_64
122 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
124 make-parallel-jobs: '4'
125 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
126 comment-trigger-value: 'debug-verify'
131 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
133 executor-arch: 'x86_64'
135 # [end] VPP-DEBUG-X86_64 PROJECT
137 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
139 # Currently a periodic job due to intermittent failures.
140 # Limiting branches to master, since other branches
141 # may not get fixes for the intermittent failures.
144 name: vpp-dpdk-rdma-version-mismatch-x86_64
146 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
148 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
149 comment-trigger-value: 'dpdk-rdma-version-mismatch'
153 # Once per day at 00:15
154 periodicity: '15 0 * * 0-6'
156 executor-arch: 'x86_64'
158 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
160 # VPP-GCC-X86_64 PROJECT
164 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
166 make-parallel-jobs: '4'
170 executor-arch: 'x86_64'
176 branch: 'stable/2210'
179 branch: 'stable/2302'
182 branch: 'stable/2306'
185 # os deprecated in 23.06
188 # os deprecated in 23.02
191 # os deprecated in 22.10
194 # os deprecated in master
197 # [end] VPP-GCC-X86_64 PROJECT
199 # VPP-AARCH64 PROJECT
201 # NOTE: The list of supported branches for each OS are maintained
202 # in .../ci-management/docker/scripts/lib_vpp.sh
203 # The job configuration must be derived from that list, thus
204 # modifications to both should be made at the same time.
205 # The AARCH64 architecture is in the process of catching up
206 # with X86_64 in terms of OS coverage. Thus the jobs are
207 # a subset of those defined in the docker image build script.
211 - 'vpp-verify-{stream}-{os}-{executor-arch}'
212 - 'vpp-merge-{stream}-{os}-{executor-arch}'
214 make-parallel-jobs: '4'
219 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
220 make-test-multiworker-os: ''
222 branch: 'stable/2210'
224 make-test-os: 'ubuntu-20.04'
225 make-test-multiworker-os: ''
227 branch: 'stable/2302'
229 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
230 make-test-multiworker-os: ''
232 branch: 'stable/2306'
234 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
235 make-test-multiworker-os: ''
239 executor-arch: 'aarch64'
240 # [end] VPP-AARCH64 PROJECT
242 # VPP-CSIT-VERIFY-DEVICE PROJECT
244 name: vpp-csit-verify-device
246 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
247 make-parallel-jobs: '32'
255 branch: 'stable/2302'
258 branch: 'stable/2306'
263 executor-arch: 'x86_64'
266 executor-arch: 'aarch64'
268 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
270 # VPP-CSIT-VERIFY-PERF PROJECT
272 name: vpp-csit-verify-perf
274 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
284 executor-arch: 'x86_64'
287 executor-arch: 'x86_64'
290 executor-arch: 'x86_64'
293 executor-arch: 'x86_64'
296 executor-arch: 'x86_64'
299 executor-arch: 'aarch64'
300 make-parallel-jobs: '16'
303 executor-arch: 'aarch64'
304 make-parallel-jobs: '16'
307 executor-arch: 'aarch64'
308 make-parallel-jobs: '16'
311 executor-arch: 'x86_64'
312 # [end] VPP-CSIT-VERIFY-PERF PROJECT
314 # VPP-CSIT-API-CRC PROJECT
316 # Only master and LTS branches are supported.
319 name: vpp-csit-api-crc
321 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
323 executor-arch: 'x86_64'
330 branch: 'stable/2302'
333 branch: 'stable/2306'
337 # [end] VPP-CSIT-API-CRC PROJECT
339 # LF RELENG VPP PROJECTS
344 - gerrit-info-yaml-verify
345 build-node: centos7-builder-2c-2g
354 # [end] LF RELENG VPP PROJECTS
355 # [end] PROJECT DEFINITIONS
357 # JOB TEMPLATE DEFINITIONS
359 # Please keep job templates in the same order as they are referenced
360 # in the project definitions above.
362 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
364 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
366 project-type: freestyle
367 node: 'builder-{os}-prod-{executor-arch}'
371 - lf-infra-properties:
372 build-days-to-keep: "{build-days-to-keep}"
374 # Please keep parameters in alphabetical order
378 - gerrit-refspec-parameter:
379 refspec: '{branch-refspec}'
386 - gerrit-trigger-scm:
387 credentials-id: 'jenkins-gerrit-credentials'
388 refspec: '$GERRIT_REFSPEC'
389 choosing-strategy: 'gerrit'
392 - fdio-infra-wrappers:
393 build-timeout: '{build-timeout}'
394 - credentials-binding:
396 credential-id: VppApiCompatNotify
397 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
401 server-name: 'Primary'
403 - patchset-created-event:
404 exclude-drafts: 'true'
405 exclude-trivial-rebase: 'false'
406 exclude-no-code-change: 'false'
407 - draft-published-event
408 - comment-added-contains-event:
409 comment-contains-value: 'checkstylecheck'
410 - comment-added-contains-event:
411 comment-contains-value: 'recheck'
412 - comment-added-contains-event:
413 comment-contains-value: 'reverify'
414 # Following two are to cover missing functions of drafts
415 # going to review status
416 - comment-added-contains-event:
417 comment-contains-value: 'runtest'
418 - comment-added-contains-event:
419 comment-contains-value: 'This change is ready for review'
421 - project-compare-type: 'ANT'
422 project-pattern: '{project}'
424 - branch-compare-type: 'ANT'
425 branch-pattern: '**/{branch}'
427 - compare-type: REG_EXP
428 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
429 forbidden-file-paths:
430 - compare-type: REG_EXP
431 pattern: .*extras\/emacs\/.*
432 disable-strict-forbidden-file-verification: 'true'
434 gerrit-build-notbuilt-verified-value: 0
435 gerrit-build-successful-verified-value: 1
436 # yamllint disable-line rule:line-length
437 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
438 # yamllint disable-line rule:line-length
439 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
440 successful-message: 'checkstyle_success'
450 - ../scripts/setup_executor_env.sh
453 - ../scripts/vpp/checkstyle.sh
456 - ../scripts/vpp/test-checkstyle.sh
459 - ../scripts/vpp/api-checkstyle.sh
462 - ../scripts/vpp/commitmsg.sh
465 - ../scripts/vpp/docs_spell.sh
470 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
472 # VPP-VERIFY JOB TEMPLATE
474 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
476 project-type: freestyle
477 node: 'builder-{os}-prod-{executor-arch}'
481 - lf-infra-properties:
482 build-days-to-keep: "{build-days-to-keep}"
484 # Please keep parameters in alphabetical order
488 - gerrit-refspec-parameter:
489 refspec: '{branch-refspec}'
490 - make-parallel-jobs-parameter:
491 make-parallel-jobs: '{make-parallel-jobs}'
492 - make-test-os-parameter:
493 make-test-os: '{make-test-os}'
494 - make-test-multiworker-os-parameter:
495 make-test-multiworker-os: '{make-test-multiworker-os}'
504 - gerrit-trigger-scm:
505 credentials-id: 'jenkins-gerrit-credentials'
506 refspec: '$GERRIT_REFSPEC'
507 choosing-strategy: 'gerrit'
510 - fdio-infra-wrappers:
514 - gerrit-trigger-checkstyle:
521 - ../scripts/setup_executor_env.sh
524 - ../scripts/setup_vpp_ubuntu_docker_test.sh
527 - ../scripts/setup_vpp_ext_deps.sh
530 - ../scripts/vpp/build.sh
534 # [end] VPP-VERIFY JOB TEMPLATE
536 # VPP-DEBUG-VERIFY JOB TEMPLATE
538 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
540 project-type: freestyle
541 node: 'builder-{os}-prod-{executor-arch}'
545 - lf-infra-properties:
546 build-days-to-keep: "{build-days-to-keep}"
548 # Please keep parameters in alphabetical order
552 - gerrit-refspec-parameter:
553 refspec: '{branch-refspec}'
554 - make-parallel-jobs-parameter:
555 make-parallel-jobs: '{make-parallel-jobs}'
556 - make-test-os-parameter:
557 make-test-os: '{make-test-os}'
566 - gerrit-trigger-scm:
567 credentials-id: 'jenkins-gerrit-credentials'
568 refspec: '$GERRIT_REFSPEC'
569 choosing-strategy: 'gerrit'
572 - fdio-infra-wrappers:
573 build-timeout: '{build-timeout}'
576 - gerrit-trigger-checkstyle-nonvoting:
583 - ../scripts/setup_executor_env.sh
586 - ../scripts/setup_vpp_ubuntu_docker_test.sh
589 - ../scripts/setup_vpp_ext_deps.sh
592 - ../scripts/vpp/debug-build.sh
596 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
598 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
600 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
602 project-type: freestyle
603 node: 'builder-{os}-prod-{executor-arch}'
607 - lf-infra-properties:
608 build-days-to-keep: "{build-days-to-keep}"
610 # Please keep parameters in alphabetical order
614 - make-parallel-jobs-parameter:
615 make-parallel-jobs: '{make-parallel-jobs}'
616 - make-test-os-parameter:
617 make-test-os: '{make-test-os}'
626 - gerrit-trigger-scm:
627 credentials-id: 'jenkins-gerrit-credentials'
629 choosing-strategy: 'default'
632 - fdio-infra-wrappers:
633 build-timeout: '{build-timeout}'
636 - timed: '{periodicity}'
637 - gerrit-trigger-manually-triggered:
638 comment-trigger-value: '{comment-trigger-value}'
645 - ../scripts/setup_executor_env.sh
648 - ../scripts/setup_vpp_ubuntu_docker_test.sh
651 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
654 - vpp-dpdk-rdma-version-mismatch:
657 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
659 # VPP-MERGE JOB TEMPLATE
661 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
663 project-type: freestyle
664 node: 'builder-{os}-prod-{executor-arch}'
667 - lf-infra-properties:
668 build-days-to-keep: "{build-days-to-keep}"
670 # Please keep parameters in alphabetical order
674 - make-parallel-jobs-parameter:
675 make-parallel-jobs: '{make-parallel-jobs}'
676 - make-test-os-parameter:
677 make-test-os: '{make-test-os}'
678 - make-test-multiworker-os-parameter:
679 make-test-multiworker-os: '{make-test-multiworker-os}'
688 - gerrit-trigger-scm:
689 credentials-id: 'jenkins-gerrit-credentials'
691 choosing-strategy: 'default'
694 - fdio-infra-wrappers:
698 - gerrit-trigger-patch-merged:
703 - config-file-provider:
705 - file-id: '.packagecloud'
706 target: '/root/.packagecloud'
707 - config-file-provider:
709 - file-id: 'packagecloud_api'
710 target: '/root/packagecloud_api'
713 - ../scripts/setup_executor_env.sh
716 - ../scripts/vpp/commitmsg.sh
719 - ../scripts/setup_vpp_ubuntu_docker_test.sh
722 - ../scripts/setup_vpp_ext_deps.sh
725 - ../scripts/vpp/build.sh
728 - ../scripts/packagecloud_push.sh
732 # [end] VPP-MERGE JOB TEMPLATE
734 # VPP-GCC-VERIFY JOB TEMPLATE
736 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
738 project-type: freestyle
739 node: 'builder-{os}-prod-{executor-arch}'
743 - lf-infra-properties:
744 build-days-to-keep: "{build-days-to-keep}"
746 # Please keep parameters in alphabetical order
750 - gerrit-refspec-parameter:
751 refspec: '{branch-refspec}'
752 - make-parallel-jobs-parameter:
753 make-parallel-jobs: '{make-parallel-jobs}'
762 - gerrit-trigger-scm:
763 credentials-id: 'jenkins-gerrit-credentials'
764 refspec: '$GERRIT_REFSPEC'
765 choosing-strategy: 'gerrit'
768 - fdio-infra-wrappers:
772 - gerrit-trigger-checkstyle:
779 - ../scripts/setup_executor_env.sh
782 - ../scripts/setup_vpp_ubuntu_docker_test.sh
785 - ../scripts/setup_vpp_ext_deps.sh
788 - ../scripts/vpp/gcc-build.sh
792 # [end] VPP-GCC-VERIFY JOB TEMPLATE
794 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
796 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
801 <li>csit-builder-{os}-prod-{executor-arch}
803 <li>testbed architecture
809 project-type: freestyle
810 node: 'csit-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
820 - gerrit-csit-refspec-parameter
821 - gerrit-event-comment-text-parameter
822 - gerrit-event-type-parameter
825 - gerrit-refspec-parameter:
826 refspec: '{branch-refspec}'
827 - make-parallel-jobs-parameter:
828 make-parallel-jobs: '{make-parallel-jobs}'
837 - gerrit-trigger-scm:
838 credentials-id: 'jenkins-gerrit-credentials'
839 refspec: '$GERRIT_REFSPEC'
840 choosing-strategy: 'gerrit'
843 - fdio-infra-wrappers:
847 - 'gerrit-trigger-vpp-csit-devicetest-full':
850 skip-vote: '{skip-vote}'
855 - ../scripts/setup_executor_env.sh
858 - ../scripts/setup_vpp_ubuntu_docker_test.sh
861 - ../scripts/setup_vpp_ext_deps.sh
864 - ../scripts/vpp/csit-device.sh
868 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
870 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
872 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
877 <li>builder-{os}-prod-{executor-arch}
879 <li>testbed architecture
884 Contrary to csit-vpp job, this also measures the parent performance,
885 and fails if performance regression is detected.
886 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
889 project-type: freestyle
890 node: 'builder-{os}-prod-{executor-arch}'
895 - lf-infra-properties:
896 build-days-to-keep: "{build-days-to-keep}"
898 # Please keep parameters in alphabetical order
900 - csit-perf-trial-duration-parameter:
901 csit-perf-trial-duration: "10.0"
902 - csit-perf-trial-multiplicity-parameter:
903 csit-perf-trial-multiplicity: "5"
904 - gerrit-csit-refspec-parameter
905 - gerrit-event-comment-text-parameter
906 - gerrit-event-type-parameter
907 - gerrit-refspec-parameter:
908 refspec: '{branch-refspec}'
911 - make-parallel-jobs-parameter:
912 make-parallel-jobs: '{make-parallel-jobs}'
921 - gerrit-trigger-scm:
922 credentials-id: 'jenkins-gerrit-credentials'
923 refspec: '$GERRIT_REFSPEC'
924 choosing-strategy: 'gerrit'
927 - fdio-infra-wrappers-non-activity-timeout:
931 - gerrit-trigger-csit-perftest:
934 trigger-word: 'perftest-{testbed-arch}'
940 - ../scripts/setup_executor_env.sh
943 - ../scripts/setup_vpp_ubuntu_docker_test.sh
946 - ../scripts/setup_vpp_ext_deps.sh
949 - ../scripts/vpp/csit-perf.sh
953 # Can be removed when all CSIT branches use correct archive directory.
964 - ../scripts/vpp/copy_archives.sh
966 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
968 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
970 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
972 project-type: freestyle
973 node: 'builder-{os}-prod-{executor-arch}'
978 - lf-infra-properties:
979 build-days-to-keep: "{build-days-to-keep}"
981 # Please keep parameters in alphabetical order
983 # Not sure whether not failing has any useful usage,
984 # but it does not hurt to have some flexibility for future.
985 - csit-fail-on-crc-mismatch-parameter:
986 fail-on-crc-mismatch: 'True'
987 - gerrit-csit-refspec-parameter
990 - gerrit-refspec-parameter:
991 refspec: '{branch-refspec}'
998 - gerrit-trigger-scm:
999 credentials-id: 'jenkins-gerrit-credentials'
1000 refspec: '$GERRIT_REFSPEC'
1001 choosing-strategy: 'gerrit'
1004 - fdio-infra-wrappers-non-activity-timeout:
1008 - gerrit-trigger-checkstyle:
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/vpp/check_crc.sh
1022 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1025 - fdio-infra-publish
1026 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1027 # [end] JOB TEMPLATE DEFINITIONS