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}'
48 executor-arch: 'x86_64'
50 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
54 # NOTE: The list of supported branches for each OS are maintained
55 # in .../ci-management/docker/scripts/lib_vpp.sh
56 # The job configuration must be derived from that list, thus
57 # modifications to both should be made at the same time.
58 # Since x86_64 is the primary development architecture, this
59 # project definition should be identical to the docker image
60 # build scripts. Other architectures may be a subset.
64 - 'vpp-verify-{stream}-{os}-{executor-arch}'
65 - 'vpp-merge-{stream}-{os}-{executor-arch}'
67 make-parallel-jobs: '4'
72 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
73 make-test-multiworker-os: 'debian-11'
77 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
78 make-test-multiworker-os: 'debian-11'
82 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
83 make-test-multiworker-os: 'debian-11'
88 executor-arch: 'x86_64'
89 # [end] VPP-X86_64 PROJECT
91 # VPP-GCC-X86_64 PROJECT
95 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
97 make-parallel-jobs: '4'
100 executor-arch: 'x86_64'
106 branch: 'stable/2306'
109 branch: 'stable/2310'
112 # [end] VPP-GCC-X86_64 PROJECT
114 # VPP-DEBUG-X86_64 PROJECT
116 # Currently a periodic job due to intermittent failures.
117 # Limiting branches to master, since other branches
118 # may not get fixes for the intermittent failures.
121 name: vpp-debug-x86_64
123 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
125 make-parallel-jobs: '4'
126 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
127 comment-trigger-value: 'debug-verify'
132 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
134 executor-arch: 'x86_64'
136 # [end] VPP-DEBUG-X86_64 PROJECT
138 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
140 # Currently a periodic job due to intermittent failures.
141 # Limiting branches to master, since other branches
142 # may not get fixes for the intermittent failures.
145 name: vpp-dpdk-rdma-version-mismatch-x86_64
147 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
149 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
150 comment-trigger-value: 'dpdk-rdma-version-mismatch'
154 # Once per day at 00:15
155 periodicity: '15 0 * * 0-6'
157 executor-arch: 'x86_64'
159 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
161 # VPP-COV-X86_64 PROJECT
163 # A per-patch job to produce code coverage.
165 # TODO: switch OS to ubuntu-22.04 once the skipping of intermittently failing
171 - 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
173 make-parallel-jobs: '4'
174 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
175 comment-trigger-value: 'gcov-report'
180 # Once per day at 00:25
181 periodicity: '25 0 * * 0-6'
183 executor-arch: 'x86_64'
185 # [end] VPP-COV-X86_64 PROJECT
187 # VPP-AARCH64 PROJECT
189 # NOTE: The list of supported branches for each OS are maintained
190 # in .../ci-management/docker/scripts/lib_vpp.sh
191 # The job configuration must be derived from that list, thus
192 # modifications to both should be made at the same time.
193 # The AARCH64 architecture is in the process of catching up
194 # with X86_64 in terms of OS coverage. Thus the jobs are
195 # a subset of those defined in the docker image build script.
199 - 'vpp-verify-{stream}-{os}-{executor-arch}'
200 - 'vpp-merge-{stream}-{os}-{executor-arch}'
202 make-parallel-jobs: '4'
207 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
208 make-test-multiworker-os: ''
210 branch: 'stable/2306'
212 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
213 make-test-multiworker-os: ''
215 branch: 'stable/2310'
217 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
218 make-test-multiworker-os: ''
222 executor-arch: 'aarch64'
223 # [end] VPP-AARCH64 PROJECT
225 # VPP-CSIT-VERIFY-DEVICE PROJECT
227 name: vpp-csit-verify-device
229 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
230 make-parallel-jobs: '32'
238 branch: 'stable/2306'
241 branch: 'stable/2310'
246 executor-arch: 'x86_64'
250 executor-arch: 'aarch64'
252 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
254 # VPP-CSIT-VERIFY-PERF PROJECT
256 name: vpp-csit-verify-perf
258 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
268 executor-arch: 'x86_64'
271 executor-arch: 'x86_64'
274 executor-arch: 'x86_64'
277 executor-arch: 'x86_64'
280 executor-arch: 'x86_64'
283 executor-arch: 'aarch64'
284 make-parallel-jobs: '16'
287 executor-arch: 'aarch64'
288 make-parallel-jobs: '16'
291 executor-arch: 'aarch64'
292 make-parallel-jobs: '16'
295 executor-arch: 'x86_64'
298 executor-arch: 'x86_64'
301 executor-arch: 'x86_64'
304 executor-arch: 'x86_64'
305 # [end] VPP-CSIT-VERIFY-PERF PROJECT
307 # VPP-CSIT-API-CRC PROJECT
309 # Only master and LTS branches are supported.
312 name: vpp-csit-api-crc
314 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
316 executor-arch: 'x86_64'
323 branch: 'stable/2306'
326 branch: 'stable/2310'
330 # [end] VPP-CSIT-API-CRC PROJECT
332 # LF RELENG VPP PROJECTS
337 - gerrit-info-yaml-verify
338 build-node: centos7-builder-2c-2g
347 # [end] LF RELENG VPP PROJECTS
348 # [end] PROJECT DEFINITIONS
350 # JOB TEMPLATE DEFINITIONS
352 # Please keep job templates in the same order as they are referenced
353 # in the project definitions above.
355 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
357 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
359 project-type: freestyle
360 node: 'builder-{os}-prod-{executor-arch}'
364 - lf-infra-properties:
365 build-days-to-keep: "{build-days-to-keep}"
367 # Please keep parameters in alphabetical order
371 - gerrit-refspec-parameter:
372 refspec: '{branch-refspec}'
379 - gerrit-trigger-scm:
380 credentials-id: 'jenkins-gerrit-credentials'
381 refspec: '$GERRIT_REFSPEC'
382 choosing-strategy: 'gerrit'
385 - fdio-infra-wrappers:
386 build-timeout: '{build-timeout}'
387 - credentials-binding:
389 credential-id: VppApiCompatNotify
390 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
394 server-name: 'Primary'
396 - patchset-created-event:
397 exclude-drafts: 'true'
398 exclude-trivial-rebase: 'false'
399 exclude-no-code-change: 'false'
400 - draft-published-event
401 - comment-added-contains-event:
402 comment-contains-value: 'checkstylecheck'
403 - comment-added-contains-event:
404 comment-contains-value: 'recheck'
405 - comment-added-contains-event:
406 comment-contains-value: 'reverify'
407 # Following two are to cover missing functions of drafts
408 # going to review status
409 - comment-added-contains-event:
410 comment-contains-value: 'runtest'
411 - comment-added-contains-event:
412 comment-contains-value: 'This change is ready for review'
414 - project-compare-type: 'ANT'
415 project-pattern: '{project}'
417 - branch-compare-type: 'ANT'
418 branch-pattern: '**/{branch}'
420 - compare-type: REG_EXP
421 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
422 forbidden-file-paths:
423 - compare-type: REG_EXP
424 pattern: .*extras\/emacs\/.*
425 disable-strict-forbidden-file-verification: 'true'
427 gerrit-build-notbuilt-verified-value: 0
428 gerrit-build-successful-verified-value: 1
429 # yamllint disable-line rule:line-length
430 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
431 # yamllint disable-line rule:line-length
432 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
433 successful-message: 'checkstyle_success'
443 - ../scripts/setup_executor_env.sh
446 - ../scripts/vpp/checkstyle.sh
449 - ../scripts/vpp/test-checkstyle.sh
452 - ../scripts/vpp/api-checkstyle.sh
455 - ../scripts/vpp/commitmsg.sh
458 - ../scripts/vpp/docs_spell.sh
463 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
465 # VPP-VERIFY JOB TEMPLATE
467 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
469 project-type: freestyle
470 node: 'builder-{os}-prod-{executor-arch}'
474 - lf-infra-properties:
475 build-days-to-keep: "{build-days-to-keep}"
477 # Please keep parameters in alphabetical order
481 - gerrit-refspec-parameter:
482 refspec: '{branch-refspec}'
483 - make-parallel-jobs-parameter:
484 make-parallel-jobs: '{make-parallel-jobs}'
485 - make-test-os-parameter:
486 make-test-os: '{make-test-os}'
487 - make-test-multiworker-os-parameter:
488 make-test-multiworker-os: '{make-test-multiworker-os}'
497 - gerrit-trigger-scm:
498 credentials-id: 'jenkins-gerrit-credentials'
499 refspec: '$GERRIT_REFSPEC'
500 choosing-strategy: 'gerrit'
503 - fdio-infra-wrappers:
507 - gerrit-trigger-checkstyle:
514 - ../scripts/setup_executor_env.sh
517 - ../scripts/setup_vpp_ubuntu_docker_test.sh
520 - ../scripts/setup_vpp_ext_deps.sh
523 - ../scripts/vpp/build.sh
527 # [end] VPP-VERIFY JOB TEMPLATE
529 # VPP-DEBUG-VERIFY JOB TEMPLATE
531 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
533 project-type: freestyle
534 node: 'builder-{os}-prod-{executor-arch}'
538 - lf-infra-properties:
539 build-days-to-keep: "{build-days-to-keep}"
541 # Please keep parameters in alphabetical order
545 - gerrit-refspec-parameter:
546 refspec: '{branch-refspec}'
547 - make-parallel-jobs-parameter:
548 make-parallel-jobs: '{make-parallel-jobs}'
549 - make-test-os-parameter:
550 make-test-os: '{make-test-os}'
559 - gerrit-trigger-scm:
560 credentials-id: 'jenkins-gerrit-credentials'
561 refspec: '$GERRIT_REFSPEC'
562 choosing-strategy: 'gerrit'
565 - fdio-infra-wrappers:
566 build-timeout: '{build-timeout}'
569 - gerrit-trigger-checkstyle-nonvoting:
576 - ../scripts/setup_executor_env.sh
579 - ../scripts/setup_vpp_ubuntu_docker_test.sh
582 - ../scripts/setup_vpp_ext_deps.sh
585 - ../scripts/vpp/debug-build.sh
589 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
591 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
593 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
595 project-type: freestyle
596 node: 'builder-{os}-prod-{executor-arch}'
600 - lf-infra-properties:
601 build-days-to-keep: "{build-days-to-keep}"
603 # Please keep parameters in alphabetical order
607 - make-parallel-jobs-parameter:
608 make-parallel-jobs: '{make-parallel-jobs}'
609 - make-test-os-parameter:
610 make-test-os: '{make-test-os}'
619 - gerrit-trigger-scm:
620 credentials-id: 'jenkins-gerrit-credentials'
622 choosing-strategy: 'default'
625 - fdio-infra-wrappers:
626 build-timeout: '{build-timeout}'
629 - timed: '{periodicity}'
630 - gerrit-trigger-manually-triggered:
631 comment-trigger-value: '{comment-trigger-value}'
638 - ../scripts/setup_executor_env.sh
641 - ../scripts/setup_vpp_ubuntu_docker_test.sh
644 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
647 - vpp-dpdk-rdma-version-mismatch:
650 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
652 # VPP-MERGE JOB TEMPLATE
654 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
656 project-type: freestyle
657 node: 'builder-{os}-prod-{executor-arch}'
660 - lf-infra-properties:
661 build-days-to-keep: "{build-days-to-keep}"
663 # Please keep parameters in alphabetical order
667 - make-parallel-jobs-parameter:
668 make-parallel-jobs: '{make-parallel-jobs}'
669 - make-test-os-parameter:
670 make-test-os: '{make-test-os}'
671 - make-test-multiworker-os-parameter:
672 make-test-multiworker-os: '{make-test-multiworker-os}'
681 - gerrit-trigger-scm:
682 credentials-id: 'jenkins-gerrit-credentials'
684 choosing-strategy: 'default'
687 - fdio-infra-wrappers:
691 - gerrit-trigger-patch-merged:
696 - config-file-provider:
698 - file-id: '.packagecloud'
699 target: '/root/.packagecloud'
700 - config-file-provider:
702 - file-id: 'packagecloud_api'
703 target: '/root/packagecloud_api'
706 - ../scripts/setup_executor_env.sh
709 - ../scripts/vpp/commitmsg.sh
712 - ../scripts/setup_vpp_ubuntu_docker_test.sh
715 - ../scripts/setup_vpp_ext_deps.sh
718 - ../scripts/vpp/build.sh
721 - ../scripts/packagecloud_push.sh
725 # [end] VPP-MERGE JOB TEMPLATE
727 # VPP-GCC-VERIFY JOB TEMPLATE
729 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
731 project-type: freestyle
732 node: 'builder-{os}-prod-{executor-arch}'
736 - lf-infra-properties:
737 build-days-to-keep: "{build-days-to-keep}"
739 # Please keep parameters in alphabetical order
743 - gerrit-refspec-parameter:
744 refspec: '{branch-refspec}'
745 - make-parallel-jobs-parameter:
746 make-parallel-jobs: '{make-parallel-jobs}'
755 - gerrit-trigger-scm:
756 credentials-id: 'jenkins-gerrit-credentials'
757 refspec: '$GERRIT_REFSPEC'
758 choosing-strategy: 'gerrit'
761 - fdio-infra-wrappers:
765 - gerrit-trigger-checkstyle:
772 - ../scripts/setup_executor_env.sh
775 - ../scripts/setup_vpp_ubuntu_docker_test.sh
778 - ../scripts/setup_vpp_ext_deps.sh
781 - ../scripts/vpp/gcc-build.sh
785 # [end] VPP-GCC-VERIFY JOB TEMPLATE
787 # VPP-COV-VERIFY JOB TEMPLATE
789 name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
791 project-type: freestyle
792 node: 'builder-{os}-prod-{executor-arch}'
796 - lf-infra-properties:
797 build-days-to-keep: "{build-days-to-keep}"
799 # Please keep parameters in alphabetical order
803 - make-parallel-jobs-parameter:
804 make-parallel-jobs: '{make-parallel-jobs}'
805 - make-test-os-parameter:
806 make-test-os: '{make-test-os}'
815 - gerrit-trigger-scm:
816 credentials-id: 'jenkins-gerrit-credentials'
818 choosing-strategy: 'default'
821 - fdio-infra-wrappers:
822 build-timeout: '{build-timeout}'
825 - timed: '{periodicity}'
826 - gerrit-trigger-manually-triggered:
827 comment-trigger-value: '{comment-trigger-value}'
834 - ../scripts/setup_executor_env.sh
837 - ../scripts/setup_vpp_ubuntu_docker_test.sh
840 - ../scripts/setup_vpp_ext_deps.sh
843 - ../scripts/vpp/cov-build.sh
846 - fdio-infra-publish-cov-7day
848 # [end] VPP-COV-VERIFY JOB TEMPLATE
850 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
852 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
857 <li>csit-builder-{os}-prod-{executor-arch}
859 <li>testbed architecture
865 project-type: freestyle
866 node: 'csit-builder-{os}-prod-{executor-arch}'
871 - lf-infra-properties:
872 build-days-to-keep: "{build-days-to-keep}"
874 # Please keep parameters in alphabetical order
876 - gerrit-csit-refspec-parameter
877 - gerrit-event-comment-text-parameter
878 - gerrit-event-type-parameter
881 - gerrit-refspec-parameter:
882 refspec: '{branch-refspec}'
883 - make-parallel-jobs-parameter:
884 make-parallel-jobs: '{make-parallel-jobs}'
893 - gerrit-trigger-scm:
894 credentials-id: 'jenkins-gerrit-credentials'
895 refspec: '$GERRIT_REFSPEC'
896 choosing-strategy: 'gerrit'
899 - fdio-infra-wrappers:
903 - 'gerrit-trigger-vpp-csit-devicetest-full':
906 skip-vote: '{skip-vote}'
911 - ../scripts/setup_executor_env.sh
914 - ../scripts/setup_vpp_ubuntu_docker_test.sh
917 - ../scripts/setup_vpp_ext_deps.sh
920 - ../scripts/vpp/csit-device.sh
924 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
926 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
928 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
933 <li>builder-{os}-prod-{executor-arch}
935 <li>testbed architecture
940 Contrary to csit-vpp job, this also measures the parent performance,
941 and fails if performance regression is detected.
942 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
945 project-type: freestyle
946 node: 'builder-{os}-prod-{executor-arch}'
951 - lf-infra-properties:
952 build-days-to-keep: "{build-days-to-keep}"
954 # Please keep parameters in alphabetical order
956 - csit-perf-trial-duration-parameter:
957 csit-perf-trial-duration: "10.0"
958 - csit-perf-trial-multiplicity-parameter:
959 csit-perf-trial-multiplicity: "5"
960 - gerrit-csit-refspec-parameter
961 - gerrit-event-comment-text-parameter
962 - gerrit-event-type-parameter
963 - gerrit-refspec-parameter:
964 refspec: '{branch-refspec}'
967 - make-parallel-jobs-parameter:
968 make-parallel-jobs: '{make-parallel-jobs}'
977 - gerrit-trigger-scm:
978 credentials-id: 'jenkins-gerrit-credentials'
979 refspec: '$GERRIT_REFSPEC'
980 choosing-strategy: 'gerrit'
983 - fdio-infra-wrappers-non-activity-timeout:
987 - gerrit-trigger-csit-perftest:
990 trigger-word: 'perftest-{testbed-arch}'
996 - ../scripts/setup_executor_env.sh
999 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1001 !include-raw-escape:
1002 - ../scripts/setup_vpp_ext_deps.sh
1004 !include-raw-escape:
1005 - ../scripts/vpp/csit-perf.sh
1009 # Can be removed when all CSIT branches use correct archive directory.
1019 !include-raw-escape:
1020 - ../scripts/vpp/copy_archives.sh
1021 - fdio-infra-publish
1022 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1024 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1026 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1028 project-type: freestyle
1029 node: 'builder-{os}-prod-{executor-arch}'
1034 - lf-infra-properties:
1035 build-days-to-keep: "{build-days-to-keep}"
1037 # Please keep parameters in alphabetical order
1039 # Not sure whether not failing has any useful usage,
1040 # but it does not hurt to have some flexibility for future.
1041 - csit-fail-on-crc-mismatch-parameter:
1042 fail-on-crc-mismatch: 'True'
1043 - gerrit-csit-refspec-parameter
1046 - gerrit-refspec-parameter:
1047 refspec: '{branch-refspec}'
1048 - project-parameter:
1049 project: '{project}'
1054 - gerrit-trigger-scm:
1055 credentials-id: 'jenkins-gerrit-credentials'
1056 refspec: '$GERRIT_REFSPEC'
1057 choosing-strategy: 'gerrit'
1060 - fdio-infra-wrappers-non-activity-timeout:
1064 - gerrit-trigger-checkstyle:
1070 !include-raw-escape:
1071 - ../scripts/setup_executor_env.sh
1073 !include-raw-escape:
1074 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1076 !include-raw-escape:
1077 - ../scripts/vpp/check_crc.sh
1078 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1081 - fdio-infra-publish
1082 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1083 # [end] JOB TEMPLATE DEFINITIONS
1089 build-node: centos8-builder-2c-2g
1090 mvn-settings: vpp-settings
1092 - "gerrit-packagecloud-release-verify"
1095 name: vpp-packagecloud-release
1098 build-node: centos8-builder-2c-2g
1099 mvn-settings: vpp-settings
1101 - "gerrit-packagecloud-release-merge"
1102 - "{project-name}-gerrit-release-jobs"