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.02
54 # os deprecated in 22.10
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'
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-DEBUG-X86_64 PROJECT
104 # Currently a periodic job due to intermittent failures.
105 # Limiting branches to master, since other branches
106 # may not get fixes for the intermittent failures.
109 name: vpp-debug-x86_64
111 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
113 make-parallel-jobs: '4'
114 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
115 comment-trigger-value: 'debug-verify'
120 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
122 executor-arch: 'x86_64'
124 # [end] VPP-DEBUG-X86_64 PROJECT
126 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
128 # Currently a periodic job due to intermittent failures.
129 # Limiting branches to master, since other branches
130 # may not get fixes for the intermittent failures.
133 name: vpp-dpdk-rdma-version-mismatch-x86_64
135 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
137 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
138 comment-trigger-value: 'dpdk-rdma-version-mismatch'
142 # Once per day at 00:15
143 periodicity: '15 0 * * 0-6'
145 executor-arch: 'x86_64'
147 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
149 # VPP-GCC-X86_64 PROJECT
153 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
155 make-parallel-jobs: '4'
159 executor-arch: 'x86_64'
165 branch: 'stable/2210'
168 branch: 'stable/2302'
171 # os deprecated in 23.02
174 # os deprecated in 22.10
177 # os deprecated in master
180 # [end] VPP-GCC-X86_64 PROJECT
182 # VPP-AARCH64 PROJECT
184 # NOTE: The list of supported branches for each OS are maintained
185 # in .../ci-management/docker/scripts/lib_vpp.sh
186 # The job configuration must be derived from that list, thus
187 # modifications to both should be made at the same time.
188 # The AARCH64 architecture is in the process of catching up
189 # with X86_64 in terms of OS coverage. Thus the jobs are
190 # a subset of those defined in the docker image build script.
194 - 'vpp-verify-{stream}-{os}-{executor-arch}'
195 - 'vpp-merge-{stream}-{os}-{executor-arch}'
197 make-parallel-jobs: '4'
202 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
203 make-test-multiworker-os: ''
205 branch: 'stable/2210'
207 make-test-os: 'ubuntu-20.04'
208 make-test-multiworker-os: ''
210 branch: 'stable/2302'
212 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
213 make-test-multiworker-os: ''
217 executor-arch: 'aarch64'
218 # [end] VPP-AARCH64 PROJECT
220 # VPP-CSIT-VERIFY-DEVICE PROJECT
222 name: vpp-csit-verify-device
224 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
225 make-parallel-jobs: '32'
233 branch: 'stable/2210'
236 branch: 'stable/2302'
241 executor-arch: 'x86_64'
244 executor-arch: 'aarch64'
246 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
248 # VPP-CSIT-VERIFY-PERF PROJECT
250 name: vpp-csit-verify-perf
252 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
262 executor-arch: 'x86_64'
265 executor-arch: 'x86_64'
268 executor-arch: 'x86_64'
271 executor-arch: 'x86_64'
274 executor-arch: 'aarch64'
275 make-parallel-jobs: '16'
278 executor-arch: 'aarch64'
279 make-parallel-jobs: '16'
282 executor-arch: 'aarch64'
283 make-parallel-jobs: '16'
286 executor-arch: 'x86_64'
287 # [end] VPP-CSIT-VERIFY-PERF PROJECT
289 # VPP-CSIT-API-CRC PROJECT
291 # Only master and LTS branches are supported.
294 name: vpp-csit-api-crc
296 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
298 executor-arch: 'x86_64'
305 branch: 'stable/2210'
308 branch: 'stable/2302'
312 # [end] VPP-CSIT-API-CRC PROJECT
314 # LF RELENG VPP PROJECTS
319 - gerrit-info-yaml-verify
320 build-node: centos7-builder-2c-2g
329 # [end] LF RELENG VPP PROJECTS
330 # [end] PROJECT DEFINITIONS
332 # JOB TEMPLATE DEFINITIONS
334 # Please keep job templates in the same order as they are referenced
335 # in the project definitions above.
337 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
339 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
341 project-type: freestyle
342 node: 'builder-{os}-prod-{executor-arch}'
346 - lf-infra-properties:
347 build-days-to-keep: "{build-days-to-keep}"
349 # Please keep parameters in alphabetical order
353 - gerrit-refspec-parameter:
354 refspec: '{branch-refspec}'
361 - gerrit-trigger-scm:
362 credentials-id: 'jenkins-gerrit-credentials'
363 refspec: '$GERRIT_REFSPEC'
364 choosing-strategy: 'gerrit'
367 - fdio-infra-wrappers:
368 build-timeout: '{build-timeout}'
369 - credentials-binding:
371 credential-id: VppApiCompatNotify
372 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
376 server-name: 'Primary'
378 - patchset-created-event:
379 exclude-drafts: 'true'
380 exclude-trivial-rebase: 'false'
381 exclude-no-code-change: 'false'
382 - draft-published-event
383 - comment-added-contains-event:
384 comment-contains-value: 'checkstylecheck'
385 - comment-added-contains-event:
386 comment-contains-value: 'docsonly'
387 - comment-added-contains-event:
388 comment-contains-value: 'recheck'
389 - comment-added-contains-event:
390 comment-contains-value: 'reverify'
391 # Following two are to cover missing functions of drafts
392 # going to review status
393 - comment-added-contains-event:
394 comment-contains-value: 'runtest'
395 - comment-added-contains-event:
396 comment-contains-value: 'This change is ready for review'
398 - project-compare-type: 'ANT'
399 project-pattern: '{project}'
401 - branch-compare-type: 'ANT'
402 branch-pattern: '**/{branch}'
404 - compare-type: REG_EXP
405 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
406 forbidden-file-paths:
407 - compare-type: REG_EXP
408 pattern: .*extras\/emacs\/.*
409 disable-strict-forbidden-file-verification: 'true'
411 gerrit-build-notbuilt-verified-value: 0
412 gerrit-build-successful-verified-value: 1
413 # yamllint disable-line rule:line-length
414 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
415 # yamllint disable-line rule:line-length
416 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
417 successful-message: 'checkstyle_success'
427 - ../scripts/setup_executor_env.sh
430 - ../scripts/vpp/checkstyle.sh
433 - ../scripts/vpp/test-checkstyle.sh
436 - ../scripts/vpp/api-checkstyle.sh
439 - ../scripts/vpp/commitmsg.sh
442 - ../scripts/vpp/docs_spell.sh
447 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
449 # VPP-VERIFY JOB TEMPLATE
451 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
453 project-type: freestyle
454 node: 'builder-{os}-prod-{executor-arch}'
458 - lf-infra-properties:
459 build-days-to-keep: "{build-days-to-keep}"
461 # Please keep parameters in alphabetical order
465 - gerrit-refspec-parameter:
466 refspec: '{branch-refspec}'
467 - make-parallel-jobs-parameter:
468 make-parallel-jobs: '{make-parallel-jobs}'
469 - make-test-os-parameter:
470 make-test-os: '{make-test-os}'
471 - make-test-multiworker-os-parameter:
472 make-test-multiworker-os: '{make-test-multiworker-os}'
481 - gerrit-trigger-scm:
482 credentials-id: 'jenkins-gerrit-credentials'
483 refspec: '$GERRIT_REFSPEC'
484 choosing-strategy: 'gerrit'
487 - fdio-infra-wrappers:
491 - gerrit-trigger-checkstyle:
498 - ../scripts/setup_executor_env.sh
501 - ../scripts/setup_vpp_ubuntu_docker_test.sh
504 - ../scripts/setup_vpp_ext_deps.sh
507 - ../scripts/vpp/build.sh
511 # [end] VPP-VERIFY JOB TEMPLATE
513 # VPP-DEBUG-VERIFY JOB TEMPLATE
515 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
517 project-type: freestyle
518 node: 'builder-{os}-prod-{executor-arch}'
522 - lf-infra-properties:
523 build-days-to-keep: "{build-days-to-keep}"
525 # Please keep parameters in alphabetical order
529 - gerrit-refspec-parameter:
530 refspec: '{branch-refspec}'
531 - make-parallel-jobs-parameter:
532 make-parallel-jobs: '{make-parallel-jobs}'
533 - make-test-os-parameter:
534 make-test-os: '{make-test-os}'
543 - gerrit-trigger-scm:
544 credentials-id: 'jenkins-gerrit-credentials'
545 refspec: '$GERRIT_REFSPEC'
546 choosing-strategy: 'gerrit'
549 - fdio-infra-wrappers:
550 build-timeout: '{build-timeout}'
553 - gerrit-trigger-checkstyle-nonvoting:
560 - ../scripts/setup_executor_env.sh
563 - ../scripts/setup_vpp_ubuntu_docker_test.sh
566 - ../scripts/setup_vpp_ext_deps.sh
569 - ../scripts/vpp/debug-build.sh
573 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
575 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
577 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
579 project-type: freestyle
580 node: 'builder-{os}-prod-{executor-arch}'
584 - lf-infra-properties:
585 build-days-to-keep: "{build-days-to-keep}"
587 # Please keep parameters in alphabetical order
591 - make-parallel-jobs-parameter:
592 make-parallel-jobs: '{make-parallel-jobs}'
593 - make-test-os-parameter:
594 make-test-os: '{make-test-os}'
603 - gerrit-trigger-scm:
604 credentials-id: 'jenkins-gerrit-credentials'
606 choosing-strategy: 'default'
609 - fdio-infra-wrappers:
610 build-timeout: '{build-timeout}'
613 - timed: '{periodicity}'
614 - gerrit-trigger-manually-triggered:
615 comment-trigger-value: '{comment-trigger-value}'
622 - ../scripts/setup_executor_env.sh
625 - ../scripts/setup_vpp_ubuntu_docker_test.sh
628 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
631 - vpp-dpdk-rdma-version-mismatch:
634 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
636 # VPP-MERGE JOB TEMPLATE
638 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
640 project-type: freestyle
641 node: 'builder-{os}-prod-{executor-arch}'
644 - lf-infra-properties:
645 build-days-to-keep: "{build-days-to-keep}"
647 # Please keep parameters in alphabetical order
651 - make-parallel-jobs-parameter:
652 make-parallel-jobs: '{make-parallel-jobs}'
653 - make-test-os-parameter:
654 make-test-os: '{make-test-os}'
655 - make-test-multiworker-os-parameter:
656 make-test-multiworker-os: '{make-test-multiworker-os}'
665 - gerrit-trigger-scm:
666 credentials-id: 'jenkins-gerrit-credentials'
668 choosing-strategy: 'default'
671 - fdio-infra-wrappers:
675 - gerrit-trigger-patch-merged:
680 - config-file-provider:
682 - file-id: '.packagecloud'
683 target: '/root/.packagecloud'
684 - config-file-provider:
686 - file-id: 'packagecloud_api'
687 target: '/root/packagecloud_api'
690 - ../scripts/setup_executor_env.sh
693 - ../scripts/setup_vpp_ubuntu_docker_test.sh
696 - ../scripts/setup_vpp_ext_deps.sh
699 - ../scripts/vpp/build.sh
702 - ../scripts/packagecloud_push.sh
706 # [end] VPP-MERGE JOB TEMPLATE
708 # VPP-GCC-VERIFY JOB TEMPLATE
710 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
712 project-type: freestyle
713 node: 'builder-{os}-prod-{executor-arch}'
717 - lf-infra-properties:
718 build-days-to-keep: "{build-days-to-keep}"
720 # Please keep parameters in alphabetical order
724 - gerrit-refspec-parameter:
725 refspec: '{branch-refspec}'
726 - make-parallel-jobs-parameter:
727 make-parallel-jobs: '{make-parallel-jobs}'
736 - gerrit-trigger-scm:
737 credentials-id: 'jenkins-gerrit-credentials'
738 refspec: '$GERRIT_REFSPEC'
739 choosing-strategy: 'gerrit'
742 - fdio-infra-wrappers:
746 - gerrit-trigger-checkstyle:
753 - ../scripts/setup_executor_env.sh
756 - ../scripts/setup_vpp_ubuntu_docker_test.sh
759 - ../scripts/setup_vpp_ext_deps.sh
762 - ../scripts/vpp/gcc-build.sh
766 # [end] VPP-GCC-VERIFY JOB TEMPLATE
768 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
770 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
775 <li>csit-builder-{os}-prod-{executor-arch}
777 <li>testbed architecture
783 project-type: freestyle
784 node: 'csit-builder-{os}-prod-{executor-arch}'
789 - lf-infra-properties:
790 build-days-to-keep: "{build-days-to-keep}"
792 # Please keep parameters in alphabetical order
794 - gerrit-csit-refspec-parameter
795 - gerrit-event-comment-text-parameter
796 - gerrit-event-type-parameter
799 - gerrit-refspec-parameter:
800 refspec: '{branch-refspec}'
801 - make-parallel-jobs-parameter:
802 make-parallel-jobs: '{make-parallel-jobs}'
811 - gerrit-trigger-scm:
812 credentials-id: 'jenkins-gerrit-credentials'
813 refspec: '$GERRIT_REFSPEC'
814 choosing-strategy: 'gerrit'
817 - fdio-infra-wrappers:
821 - 'gerrit-trigger-vpp-csit-devicetest-full':
824 skip-vote: '{skip-vote}'
829 - ../scripts/setup_executor_env.sh
832 - ../scripts/setup_vpp_ubuntu_docker_test.sh
835 - ../scripts/setup_vpp_ext_deps.sh
838 - ../scripts/vpp/csit-device.sh
842 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
844 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
846 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
851 <li>builder-{os}-prod-{executor-arch}
853 <li>testbed architecture
858 Contrary to csit-vpp job, this also measures the parent performance,
859 and fails if performance regression is detected.
860 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
863 project-type: freestyle
864 node: 'builder-{os}-prod-{executor-arch}'
869 - lf-infra-properties:
870 build-days-to-keep: "{build-days-to-keep}"
872 # Please keep parameters in alphabetical order
874 - csit-perf-trial-duration-parameter:
875 csit-perf-trial-duration: "10.0"
876 - csit-perf-trial-multiplicity-parameter:
877 csit-perf-trial-multiplicity: "5"
878 - gerrit-csit-refspec-parameter
879 - gerrit-event-comment-text-parameter
880 - gerrit-event-type-parameter
881 - gerrit-refspec-parameter:
882 refspec: '{branch-refspec}'
885 - make-parallel-jobs-parameter:
886 make-parallel-jobs: '{make-parallel-jobs}'
895 - gerrit-trigger-scm:
896 credentials-id: 'jenkins-gerrit-credentials'
897 refspec: '$GERRIT_REFSPEC'
898 choosing-strategy: 'gerrit'
901 - fdio-infra-wrappers-non-activity-timeout:
905 - gerrit-trigger-csit-perftest:
908 trigger-word: 'perftest-{testbed-arch}'
914 - ../scripts/setup_executor_env.sh
917 - ../scripts/setup_vpp_ubuntu_docker_test.sh
920 - ../scripts/setup_vpp_ext_deps.sh
923 - ../scripts/vpp/csit-perf.sh
927 # Can be removed when all CSIT branches use correct archive directory.
938 - ../scripts/vpp/copy_archives.sh
940 output-path: 'archives/csit_current/0/'
943 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
945 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
947 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
949 project-type: freestyle
950 node: 'builder-{os}-prod-{executor-arch}'
955 - lf-infra-properties:
956 build-days-to-keep: "{build-days-to-keep}"
958 # Please keep parameters in alphabetical order
960 # Not sure whether not failing has any useful usage,
961 # but it does not hurt to have some flexibility for future.
962 - csit-fail-on-crc-mismatch-parameter:
963 fail-on-crc-mismatch: 'True'
964 - gerrit-csit-refspec-parameter
967 - gerrit-refspec-parameter:
968 refspec: '{branch-refspec}'
975 - gerrit-trigger-scm:
976 credentials-id: 'jenkins-gerrit-credentials'
977 refspec: '$GERRIT_REFSPEC'
978 choosing-strategy: 'gerrit'
981 - fdio-infra-wrappers-non-activity-timeout:
985 - gerrit-trigger-checkstyle:
992 - ../scripts/setup_executor_env.sh
995 - ../scripts/setup_vpp_ubuntu_docker_test.sh
998 - ../scripts/vpp/check_crc.sh
999 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1002 - fdio-infra-publish
1003 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1004 # [end] JOB TEMPLATE DEFINITIONS