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'
271 executor-arch: 'aarch64'
273 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
275 # VPP-CSIT-VERIFY-PERF PROJECT
277 name: vpp-csit-verify-perf
279 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
289 executor-arch: 'x86_64'
292 executor-arch: 'x86_64'
295 executor-arch: 'x86_64'
298 executor-arch: 'x86_64'
301 executor-arch: 'x86_64'
304 executor-arch: 'aarch64'
305 make-parallel-jobs: '16'
308 executor-arch: 'aarch64'
309 make-parallel-jobs: '16'
312 executor-arch: 'aarch64'
313 make-parallel-jobs: '16'
316 executor-arch: 'x86_64'
317 # [end] VPP-CSIT-VERIFY-PERF PROJECT
319 # VPP-CSIT-API-CRC PROJECT
321 # Only master and LTS branches are supported.
324 name: vpp-csit-api-crc
326 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
328 executor-arch: 'x86_64'
335 branch: 'stable/2302'
338 branch: 'stable/2306'
342 # [end] VPP-CSIT-API-CRC PROJECT
344 # LF RELENG VPP PROJECTS
349 - gerrit-info-yaml-verify
350 build-node: centos7-builder-2c-2g
359 # [end] LF RELENG VPP PROJECTS
360 # [end] PROJECT DEFINITIONS
362 # JOB TEMPLATE DEFINITIONS
364 # Please keep job templates in the same order as they are referenced
365 # in the project definitions above.
367 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
369 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
371 project-type: freestyle
372 node: 'builder-{os}-prod-{executor-arch}'
376 - lf-infra-properties:
377 build-days-to-keep: "{build-days-to-keep}"
379 # Please keep parameters in alphabetical order
383 - gerrit-refspec-parameter:
384 refspec: '{branch-refspec}'
391 - gerrit-trigger-scm:
392 credentials-id: 'jenkins-gerrit-credentials'
393 refspec: '$GERRIT_REFSPEC'
394 choosing-strategy: 'gerrit'
397 - fdio-infra-wrappers:
398 build-timeout: '{build-timeout}'
399 - credentials-binding:
401 credential-id: VppApiCompatNotify
402 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
406 server-name: 'Primary'
408 - patchset-created-event:
409 exclude-drafts: 'true'
410 exclude-trivial-rebase: 'false'
411 exclude-no-code-change: 'false'
412 - draft-published-event
413 - comment-added-contains-event:
414 comment-contains-value: 'checkstylecheck'
415 - comment-added-contains-event:
416 comment-contains-value: 'recheck'
417 - comment-added-contains-event:
418 comment-contains-value: 'reverify'
419 # Following two are to cover missing functions of drafts
420 # going to review status
421 - comment-added-contains-event:
422 comment-contains-value: 'runtest'
423 - comment-added-contains-event:
424 comment-contains-value: 'This change is ready for review'
426 - project-compare-type: 'ANT'
427 project-pattern: '{project}'
429 - branch-compare-type: 'ANT'
430 branch-pattern: '**/{branch}'
432 - compare-type: REG_EXP
433 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
434 forbidden-file-paths:
435 - compare-type: REG_EXP
436 pattern: .*extras\/emacs\/.*
437 disable-strict-forbidden-file-verification: 'true'
439 gerrit-build-notbuilt-verified-value: 0
440 gerrit-build-successful-verified-value: 1
441 # yamllint disable-line rule:line-length
442 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
443 # yamllint disable-line rule:line-length
444 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
445 successful-message: 'checkstyle_success'
455 - ../scripts/setup_executor_env.sh
458 - ../scripts/vpp/checkstyle.sh
461 - ../scripts/vpp/test-checkstyle.sh
464 - ../scripts/vpp/api-checkstyle.sh
467 - ../scripts/vpp/commitmsg.sh
470 - ../scripts/vpp/docs_spell.sh
475 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
477 # VPP-VERIFY JOB TEMPLATE
479 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
481 project-type: freestyle
482 node: 'builder-{os}-prod-{executor-arch}'
486 - lf-infra-properties:
487 build-days-to-keep: "{build-days-to-keep}"
489 # Please keep parameters in alphabetical order
493 - gerrit-refspec-parameter:
494 refspec: '{branch-refspec}'
495 - make-parallel-jobs-parameter:
496 make-parallel-jobs: '{make-parallel-jobs}'
497 - make-test-os-parameter:
498 make-test-os: '{make-test-os}'
499 - make-test-multiworker-os-parameter:
500 make-test-multiworker-os: '{make-test-multiworker-os}'
509 - gerrit-trigger-scm:
510 credentials-id: 'jenkins-gerrit-credentials'
511 refspec: '$GERRIT_REFSPEC'
512 choosing-strategy: 'gerrit'
515 - fdio-infra-wrappers:
519 - gerrit-trigger-checkstyle:
526 - ../scripts/setup_executor_env.sh
529 - ../scripts/setup_vpp_ubuntu_docker_test.sh
532 - ../scripts/setup_vpp_ext_deps.sh
535 - ../scripts/vpp/build.sh
539 # [end] VPP-VERIFY JOB TEMPLATE
541 # VPP-DEBUG-VERIFY JOB TEMPLATE
543 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
545 project-type: freestyle
546 node: 'builder-{os}-prod-{executor-arch}'
550 - lf-infra-properties:
551 build-days-to-keep: "{build-days-to-keep}"
553 # Please keep parameters in alphabetical order
557 - gerrit-refspec-parameter:
558 refspec: '{branch-refspec}'
559 - make-parallel-jobs-parameter:
560 make-parallel-jobs: '{make-parallel-jobs}'
561 - make-test-os-parameter:
562 make-test-os: '{make-test-os}'
571 - gerrit-trigger-scm:
572 credentials-id: 'jenkins-gerrit-credentials'
573 refspec: '$GERRIT_REFSPEC'
574 choosing-strategy: 'gerrit'
577 - fdio-infra-wrappers:
578 build-timeout: '{build-timeout}'
581 - gerrit-trigger-checkstyle-nonvoting:
588 - ../scripts/setup_executor_env.sh
591 - ../scripts/setup_vpp_ubuntu_docker_test.sh
594 - ../scripts/setup_vpp_ext_deps.sh
597 - ../scripts/vpp/debug-build.sh
601 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
603 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
605 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
607 project-type: freestyle
608 node: 'builder-{os}-prod-{executor-arch}'
612 - lf-infra-properties:
613 build-days-to-keep: "{build-days-to-keep}"
615 # Please keep parameters in alphabetical order
619 - make-parallel-jobs-parameter:
620 make-parallel-jobs: '{make-parallel-jobs}'
621 - make-test-os-parameter:
622 make-test-os: '{make-test-os}'
631 - gerrit-trigger-scm:
632 credentials-id: 'jenkins-gerrit-credentials'
634 choosing-strategy: 'default'
637 - fdio-infra-wrappers:
638 build-timeout: '{build-timeout}'
641 - timed: '{periodicity}'
642 - gerrit-trigger-manually-triggered:
643 comment-trigger-value: '{comment-trigger-value}'
650 - ../scripts/setup_executor_env.sh
653 - ../scripts/setup_vpp_ubuntu_docker_test.sh
656 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
659 - vpp-dpdk-rdma-version-mismatch:
662 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
664 # VPP-MERGE JOB TEMPLATE
666 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
668 project-type: freestyle
669 node: 'builder-{os}-prod-{executor-arch}'
672 - lf-infra-properties:
673 build-days-to-keep: "{build-days-to-keep}"
675 # Please keep parameters in alphabetical order
679 - make-parallel-jobs-parameter:
680 make-parallel-jobs: '{make-parallel-jobs}'
681 - make-test-os-parameter:
682 make-test-os: '{make-test-os}'
683 - make-test-multiworker-os-parameter:
684 make-test-multiworker-os: '{make-test-multiworker-os}'
693 - gerrit-trigger-scm:
694 credentials-id: 'jenkins-gerrit-credentials'
696 choosing-strategy: 'default'
699 - fdio-infra-wrappers:
703 - gerrit-trigger-patch-merged:
708 - config-file-provider:
710 - file-id: '.packagecloud'
711 target: '/root/.packagecloud'
712 - config-file-provider:
714 - file-id: 'packagecloud_api'
715 target: '/root/packagecloud_api'
718 - ../scripts/setup_executor_env.sh
721 - ../scripts/vpp/commitmsg.sh
724 - ../scripts/setup_vpp_ubuntu_docker_test.sh
727 - ../scripts/setup_vpp_ext_deps.sh
730 - ../scripts/vpp/build.sh
733 - ../scripts/packagecloud_push.sh
737 # [end] VPP-MERGE JOB TEMPLATE
739 # VPP-GCC-VERIFY JOB TEMPLATE
741 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
743 project-type: freestyle
744 node: 'builder-{os}-prod-{executor-arch}'
748 - lf-infra-properties:
749 build-days-to-keep: "{build-days-to-keep}"
751 # Please keep parameters in alphabetical order
755 - gerrit-refspec-parameter:
756 refspec: '{branch-refspec}'
757 - make-parallel-jobs-parameter:
758 make-parallel-jobs: '{make-parallel-jobs}'
767 - gerrit-trigger-scm:
768 credentials-id: 'jenkins-gerrit-credentials'
769 refspec: '$GERRIT_REFSPEC'
770 choosing-strategy: 'gerrit'
773 - fdio-infra-wrappers:
777 - gerrit-trigger-checkstyle:
784 - ../scripts/setup_executor_env.sh
787 - ../scripts/setup_vpp_ubuntu_docker_test.sh
790 - ../scripts/setup_vpp_ext_deps.sh
793 - ../scripts/vpp/gcc-build.sh
797 # [end] VPP-GCC-VERIFY JOB TEMPLATE
799 # VPP-COV-VERIFY JOB TEMPLATE
801 name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
803 project-type: freestyle
804 node: 'builder-{os}-prod-{executor-arch}'
808 - lf-infra-properties:
809 build-days-to-keep: "{build-days-to-keep}"
811 # Please keep parameters in alphabetical order
815 - make-parallel-jobs-parameter:
816 make-parallel-jobs: '{make-parallel-jobs}'
817 - make-test-os-parameter:
818 make-test-os: '{make-test-os}'
827 - gerrit-trigger-scm:
828 credentials-id: 'jenkins-gerrit-credentials'
830 choosing-strategy: 'default'
833 - fdio-infra-wrappers:
834 build-timeout: '{build-timeout}'
837 - timed: '{periodicity}'
838 - gerrit-trigger-manually-triggered:
839 comment-trigger-value: '{comment-trigger-value}'
846 - ../scripts/setup_executor_env.sh
849 - ../scripts/setup_vpp_ubuntu_docker_test.sh
852 - ../scripts/setup_vpp_ext_deps.sh
855 - ../scripts/vpp/cov-build.sh
858 - fdio-infra-publish-cov-7day
860 # [end] VPP-COV-VERIFY JOB TEMPLATE
862 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
864 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
869 <li>csit-builder-{os}-prod-{executor-arch}
871 <li>testbed architecture
877 project-type: freestyle
878 node: 'csit-builder-{os}-prod-{executor-arch}'
883 - lf-infra-properties:
884 build-days-to-keep: "{build-days-to-keep}"
886 # Please keep parameters in alphabetical order
888 - gerrit-csit-refspec-parameter
889 - gerrit-event-comment-text-parameter
890 - gerrit-event-type-parameter
893 - gerrit-refspec-parameter:
894 refspec: '{branch-refspec}'
895 - make-parallel-jobs-parameter:
896 make-parallel-jobs: '{make-parallel-jobs}'
905 - gerrit-trigger-scm:
906 credentials-id: 'jenkins-gerrit-credentials'
907 refspec: '$GERRIT_REFSPEC'
908 choosing-strategy: 'gerrit'
911 - fdio-infra-wrappers:
915 - 'gerrit-trigger-vpp-csit-devicetest-full':
918 skip-vote: '{skip-vote}'
923 - ../scripts/setup_executor_env.sh
926 - ../scripts/setup_vpp_ubuntu_docker_test.sh
929 - ../scripts/setup_vpp_ext_deps.sh
932 - ../scripts/vpp/csit-device.sh
936 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
938 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
940 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
945 <li>builder-{os}-prod-{executor-arch}
947 <li>testbed architecture
952 Contrary to csit-vpp job, this also measures the parent performance,
953 and fails if performance regression is detected.
954 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
957 project-type: freestyle
958 node: 'builder-{os}-prod-{executor-arch}'
963 - lf-infra-properties:
964 build-days-to-keep: "{build-days-to-keep}"
966 # Please keep parameters in alphabetical order
968 - csit-perf-trial-duration-parameter:
969 csit-perf-trial-duration: "10.0"
970 - csit-perf-trial-multiplicity-parameter:
971 csit-perf-trial-multiplicity: "5"
972 - gerrit-csit-refspec-parameter
973 - gerrit-event-comment-text-parameter
974 - gerrit-event-type-parameter
975 - gerrit-refspec-parameter:
976 refspec: '{branch-refspec}'
979 - make-parallel-jobs-parameter:
980 make-parallel-jobs: '{make-parallel-jobs}'
989 - gerrit-trigger-scm:
990 credentials-id: 'jenkins-gerrit-credentials'
991 refspec: '$GERRIT_REFSPEC'
992 choosing-strategy: 'gerrit'
995 - fdio-infra-wrappers-non-activity-timeout:
999 - gerrit-trigger-csit-perftest:
1000 project: '{project}'
1002 trigger-word: 'perftest-{testbed-arch}'
1007 !include-raw-escape:
1008 - ../scripts/setup_executor_env.sh
1010 !include-raw-escape:
1011 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1013 !include-raw-escape:
1014 - ../scripts/setup_vpp_ext_deps.sh
1016 !include-raw-escape:
1017 - ../scripts/vpp/csit-perf.sh
1021 # Can be removed when all CSIT branches use correct archive directory.
1031 !include-raw-escape:
1032 - ../scripts/vpp/copy_archives.sh
1033 - fdio-infra-publish
1034 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1036 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1038 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1040 project-type: freestyle
1041 node: 'builder-{os}-prod-{executor-arch}'
1046 - lf-infra-properties:
1047 build-days-to-keep: "{build-days-to-keep}"
1049 # Please keep parameters in alphabetical order
1051 # Not sure whether not failing has any useful usage,
1052 # but it does not hurt to have some flexibility for future.
1053 - csit-fail-on-crc-mismatch-parameter:
1054 fail-on-crc-mismatch: 'True'
1055 - gerrit-csit-refspec-parameter
1058 - gerrit-refspec-parameter:
1059 refspec: '{branch-refspec}'
1060 - project-parameter:
1061 project: '{project}'
1066 - gerrit-trigger-scm:
1067 credentials-id: 'jenkins-gerrit-credentials'
1068 refspec: '$GERRIT_REFSPEC'
1069 choosing-strategy: 'gerrit'
1072 - fdio-infra-wrappers-non-activity-timeout:
1076 - gerrit-trigger-checkstyle:
1082 !include-raw-escape:
1083 - ../scripts/setup_executor_env.sh
1085 !include-raw-escape:
1086 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1088 !include-raw-escape:
1089 - ../scripts/vpp/check_crc.sh
1090 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1093 - fdio-infra-publish
1094 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1095 # [end] JOB TEMPLATE DEFINITIONS
1101 build-node: centos8-builder-2c-2g
1102 mvn-settings: vpp-settings
1104 - "gerrit-packagecloud-release-verify"
1107 name: vpp-packagecloud-release
1110 build-node: centos8-builder-2c-2g
1111 mvn-settings: vpp-settings
1113 - "gerrit-packagecloud-release-merge"
1114 - "{project-name}-gerrit-release-jobs"