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 # [end] VPP-COV-X86_64 PROJECT
115 # VPP-DEBUG-X86_64 PROJECT
117 # Currently a periodic job due to intermittent failures.
118 # Limiting branches to master, since other branches
119 # may not get fixes for the intermittent failures.
122 name: vpp-debug-x86_64
124 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
126 make-parallel-jobs: '4'
127 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
128 comment-trigger-value: 'debug-verify'
133 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
135 executor-arch: 'x86_64'
137 # [end] VPP-DEBUG-X86_64 PROJECT
139 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
141 # Currently a periodic job due to intermittent failures.
142 # Limiting branches to master, since other branches
143 # may not get fixes for the intermittent failures.
146 name: vpp-dpdk-rdma-version-mismatch-x86_64
148 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
150 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
151 comment-trigger-value: 'dpdk-rdma-version-mismatch'
155 # Once per day at 00:15
156 periodicity: '15 0 * * 0-6'
158 executor-arch: 'x86_64'
160 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
162 # VPP-COV-X86_64 PROJECT
164 # A per-patch job to produce code coverage.
166 # TODO: switch OS to ubuntu-22.04 once the skipping of intermittently failing
172 - 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
174 make-parallel-jobs: '4'
175 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
176 comment-trigger-value: 'cov-verify'
181 # Once per day at 00:25
182 periodicity: '25 0 * * 0-6'
184 executor-arch: 'x86_64'
186 # VPP-AARCH64 PROJECT
188 # NOTE: The list of supported branches for each OS are maintained
189 # in .../ci-management/docker/scripts/lib_vpp.sh
190 # The job configuration must be derived from that list, thus
191 # modifications to both should be made at the same time.
192 # The AARCH64 architecture is in the process of catching up
193 # with X86_64 in terms of OS coverage. Thus the jobs are
194 # a subset of those defined in the docker image build script.
198 - 'vpp-verify-{stream}-{os}-{executor-arch}'
199 - 'vpp-merge-{stream}-{os}-{executor-arch}'
201 make-parallel-jobs: '4'
206 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
207 make-test-multiworker-os: ''
209 branch: 'stable/2210'
211 make-test-os: 'ubuntu-20.04'
212 make-test-multiworker-os: ''
214 branch: 'stable/2302'
216 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
217 make-test-multiworker-os: ''
219 branch: 'stable/2306'
221 make-test-os: 'ubuntu-20.04 ubuntu-22.04'
222 make-test-multiworker-os: ''
226 executor-arch: 'aarch64'
227 # [end] VPP-AARCH64 PROJECT
229 # VPP-CSIT-VERIFY-DEVICE PROJECT
231 name: vpp-csit-verify-device
233 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
234 make-parallel-jobs: '32'
242 branch: 'stable/2302'
245 branch: 'stable/2306'
250 executor-arch: 'x86_64'
253 executor-arch: 'aarch64'
255 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
257 # VPP-CSIT-VERIFY-PERF PROJECT
259 name: vpp-csit-verify-perf
261 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
271 executor-arch: 'x86_64'
274 executor-arch: 'x86_64'
277 executor-arch: 'x86_64'
280 executor-arch: 'x86_64'
283 executor-arch: 'x86_64'
286 executor-arch: 'aarch64'
287 make-parallel-jobs: '16'
290 executor-arch: 'aarch64'
291 make-parallel-jobs: '16'
294 executor-arch: 'aarch64'
295 make-parallel-jobs: '16'
298 executor-arch: 'x86_64'
299 # [end] VPP-CSIT-VERIFY-PERF PROJECT
301 # VPP-CSIT-API-CRC PROJECT
303 # Only master and LTS branches are supported.
306 name: vpp-csit-api-crc
308 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
310 executor-arch: 'x86_64'
317 branch: 'stable/2302'
320 branch: 'stable/2306'
324 # [end] VPP-CSIT-API-CRC PROJECT
326 # LF RELENG VPP PROJECTS
331 - gerrit-info-yaml-verify
332 build-node: centos7-builder-2c-2g
341 # [end] LF RELENG VPP PROJECTS
342 # [end] PROJECT DEFINITIONS
344 # JOB TEMPLATE DEFINITIONS
346 # Please keep job templates in the same order as they are referenced
347 # in the project definitions above.
349 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
351 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
353 project-type: freestyle
354 node: 'builder-{os}-prod-{executor-arch}'
358 - lf-infra-properties:
359 build-days-to-keep: "{build-days-to-keep}"
361 # Please keep parameters in alphabetical order
365 - gerrit-refspec-parameter:
366 refspec: '{branch-refspec}'
373 - gerrit-trigger-scm:
374 credentials-id: 'jenkins-gerrit-credentials'
375 refspec: '$GERRIT_REFSPEC'
376 choosing-strategy: 'gerrit'
379 - fdio-infra-wrappers:
380 build-timeout: '{build-timeout}'
381 - credentials-binding:
383 credential-id: VppApiCompatNotify
384 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
388 server-name: 'Primary'
390 - patchset-created-event:
391 exclude-drafts: 'true'
392 exclude-trivial-rebase: 'false'
393 exclude-no-code-change: 'false'
394 - draft-published-event
395 - comment-added-contains-event:
396 comment-contains-value: 'checkstylecheck'
397 - comment-added-contains-event:
398 comment-contains-value: 'recheck'
399 - comment-added-contains-event:
400 comment-contains-value: 'reverify'
401 # Following two are to cover missing functions of drafts
402 # going to review status
403 - comment-added-contains-event:
404 comment-contains-value: 'runtest'
405 - comment-added-contains-event:
406 comment-contains-value: 'This change is ready for review'
408 - project-compare-type: 'ANT'
409 project-pattern: '{project}'
411 - branch-compare-type: 'ANT'
412 branch-pattern: '**/{branch}'
414 - compare-type: REG_EXP
415 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
416 forbidden-file-paths:
417 - compare-type: REG_EXP
418 pattern: .*extras\/emacs\/.*
419 disable-strict-forbidden-file-verification: 'true'
421 gerrit-build-notbuilt-verified-value: 0
422 gerrit-build-successful-verified-value: 1
423 # yamllint disable-line rule:line-length
424 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
425 # yamllint disable-line rule:line-length
426 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
427 successful-message: 'checkstyle_success'
437 - ../scripts/setup_executor_env.sh
440 - ../scripts/vpp/checkstyle.sh
443 - ../scripts/vpp/test-checkstyle.sh
446 - ../scripts/vpp/api-checkstyle.sh
449 - ../scripts/vpp/commitmsg.sh
452 - ../scripts/vpp/docs_spell.sh
457 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
459 # VPP-VERIFY JOB TEMPLATE
461 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
463 project-type: freestyle
464 node: 'builder-{os}-prod-{executor-arch}'
468 - lf-infra-properties:
469 build-days-to-keep: "{build-days-to-keep}"
471 # Please keep parameters in alphabetical order
475 - gerrit-refspec-parameter:
476 refspec: '{branch-refspec}'
477 - make-parallel-jobs-parameter:
478 make-parallel-jobs: '{make-parallel-jobs}'
479 - make-test-os-parameter:
480 make-test-os: '{make-test-os}'
481 - make-test-multiworker-os-parameter:
482 make-test-multiworker-os: '{make-test-multiworker-os}'
491 - gerrit-trigger-scm:
492 credentials-id: 'jenkins-gerrit-credentials'
493 refspec: '$GERRIT_REFSPEC'
494 choosing-strategy: 'gerrit'
497 - fdio-infra-wrappers:
501 - gerrit-trigger-checkstyle:
508 - ../scripts/setup_executor_env.sh
511 - ../scripts/setup_vpp_ubuntu_docker_test.sh
514 - ../scripts/setup_vpp_ext_deps.sh
517 - ../scripts/vpp/build.sh
521 # [end] VPP-VERIFY JOB TEMPLATE
523 # VPP-DEBUG-VERIFY JOB TEMPLATE
525 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
527 project-type: freestyle
528 node: 'builder-{os}-prod-{executor-arch}'
532 - lf-infra-properties:
533 build-days-to-keep: "{build-days-to-keep}"
535 # Please keep parameters in alphabetical order
539 - gerrit-refspec-parameter:
540 refspec: '{branch-refspec}'
541 - make-parallel-jobs-parameter:
542 make-parallel-jobs: '{make-parallel-jobs}'
543 - make-test-os-parameter:
544 make-test-os: '{make-test-os}'
553 - gerrit-trigger-scm:
554 credentials-id: 'jenkins-gerrit-credentials'
555 refspec: '$GERRIT_REFSPEC'
556 choosing-strategy: 'gerrit'
559 - fdio-infra-wrappers:
560 build-timeout: '{build-timeout}'
563 - gerrit-trigger-checkstyle-nonvoting:
570 - ../scripts/setup_executor_env.sh
573 - ../scripts/setup_vpp_ubuntu_docker_test.sh
576 - ../scripts/setup_vpp_ext_deps.sh
579 - ../scripts/vpp/debug-build.sh
583 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
585 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
587 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
589 project-type: freestyle
590 node: 'builder-{os}-prod-{executor-arch}'
594 - lf-infra-properties:
595 build-days-to-keep: "{build-days-to-keep}"
597 # Please keep parameters in alphabetical order
601 - make-parallel-jobs-parameter:
602 make-parallel-jobs: '{make-parallel-jobs}'
603 - make-test-os-parameter:
604 make-test-os: '{make-test-os}'
613 - gerrit-trigger-scm:
614 credentials-id: 'jenkins-gerrit-credentials'
616 choosing-strategy: 'default'
619 - fdio-infra-wrappers:
620 build-timeout: '{build-timeout}'
623 - timed: '{periodicity}'
624 - gerrit-trigger-manually-triggered:
625 comment-trigger-value: '{comment-trigger-value}'
632 - ../scripts/setup_executor_env.sh
635 - ../scripts/setup_vpp_ubuntu_docker_test.sh
638 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
641 - vpp-dpdk-rdma-version-mismatch:
644 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
646 # VPP-MERGE JOB TEMPLATE
648 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
650 project-type: freestyle
651 node: 'builder-{os}-prod-{executor-arch}'
654 - lf-infra-properties:
655 build-days-to-keep: "{build-days-to-keep}"
657 # Please keep parameters in alphabetical order
661 - make-parallel-jobs-parameter:
662 make-parallel-jobs: '{make-parallel-jobs}'
663 - make-test-os-parameter:
664 make-test-os: '{make-test-os}'
665 - make-test-multiworker-os-parameter:
666 make-test-multiworker-os: '{make-test-multiworker-os}'
675 - gerrit-trigger-scm:
676 credentials-id: 'jenkins-gerrit-credentials'
678 choosing-strategy: 'default'
681 - fdio-infra-wrappers:
685 - gerrit-trigger-patch-merged:
690 - config-file-provider:
692 - file-id: '.packagecloud'
693 target: '/root/.packagecloud'
694 - config-file-provider:
696 - file-id: 'packagecloud_api'
697 target: '/root/packagecloud_api'
700 - ../scripts/setup_executor_env.sh
703 - ../scripts/vpp/commitmsg.sh
706 - ../scripts/setup_vpp_ubuntu_docker_test.sh
709 - ../scripts/setup_vpp_ext_deps.sh
712 - ../scripts/vpp/build.sh
715 - ../scripts/packagecloud_push.sh
719 # [end] VPP-MERGE JOB TEMPLATE
721 # VPP-COV-VERIFY JOB TEMPLATE
723 name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
725 project-type: freestyle
726 node: 'builder-{os}-prod-{executor-arch}'
730 - lf-infra-properties:
731 build-days-to-keep: "{build-days-to-keep}"
733 # Please keep parameters in alphabetical order
737 - make-parallel-jobs-parameter:
738 make-parallel-jobs: '{make-parallel-jobs}'
739 - make-test-os-parameter:
740 make-test-os: '{make-test-os}'
749 - gerrit-trigger-scm:
750 credentials-id: 'jenkins-gerrit-credentials'
752 choosing-strategy: 'default'
755 - fdio-infra-wrappers:
756 build-timeout: '{build-timeout}'
759 - timed: '{periodicity}'
760 - gerrit-trigger-manually-triggered:
761 comment-trigger-value: '{comment-trigger-value}'
768 - ../scripts/setup_executor_env.sh
771 - ../scripts/setup_vpp_ubuntu_docker_test.sh
774 - ../scripts/setup_vpp_ext_deps.sh
777 - ../scripts/vpp/cov-build.sh
780 - fdio-infra-publish-cov-7day
782 # [end] VPP-COV-VERIFY JOB TEMPLATE
784 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
786 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
791 <li>csit-builder-{os}-prod-{executor-arch}
793 <li>testbed architecture
799 project-type: freestyle
800 node: 'csit-builder-{os}-prod-{executor-arch}'
805 - lf-infra-properties:
806 build-days-to-keep: "{build-days-to-keep}"
808 # Please keep parameters in alphabetical order
810 - gerrit-csit-refspec-parameter
811 - gerrit-event-comment-text-parameter
812 - gerrit-event-type-parameter
815 - gerrit-refspec-parameter:
816 refspec: '{branch-refspec}'
817 - make-parallel-jobs-parameter:
818 make-parallel-jobs: '{make-parallel-jobs}'
827 - gerrit-trigger-scm:
828 credentials-id: 'jenkins-gerrit-credentials'
829 refspec: '$GERRIT_REFSPEC'
830 choosing-strategy: 'gerrit'
833 - fdio-infra-wrappers:
837 - 'gerrit-trigger-vpp-csit-devicetest-full':
840 skip-vote: '{skip-vote}'
845 - ../scripts/setup_executor_env.sh
848 - ../scripts/setup_vpp_ubuntu_docker_test.sh
851 - ../scripts/setup_vpp_ext_deps.sh
854 - ../scripts/vpp/csit-device.sh
858 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
860 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
862 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
867 <li>builder-{os}-prod-{executor-arch}
869 <li>testbed architecture
874 Contrary to csit-vpp job, this also measures the parent performance,
875 and fails if performance regression is detected.
876 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
879 project-type: freestyle
880 node: 'builder-{os}-prod-{executor-arch}'
885 - lf-infra-properties:
886 build-days-to-keep: "{build-days-to-keep}"
888 # Please keep parameters in alphabetical order
890 - csit-perf-trial-duration-parameter:
891 csit-perf-trial-duration: "10.0"
892 - csit-perf-trial-multiplicity-parameter:
893 csit-perf-trial-multiplicity: "5"
894 - gerrit-csit-refspec-parameter
895 - gerrit-event-comment-text-parameter
896 - gerrit-event-type-parameter
897 - gerrit-refspec-parameter:
898 refspec: '{branch-refspec}'
901 - make-parallel-jobs-parameter:
902 make-parallel-jobs: '{make-parallel-jobs}'
911 - gerrit-trigger-scm:
912 credentials-id: 'jenkins-gerrit-credentials'
913 refspec: '$GERRIT_REFSPEC'
914 choosing-strategy: 'gerrit'
917 - fdio-infra-wrappers-non-activity-timeout:
921 - gerrit-trigger-csit-perftest:
924 trigger-word: 'perftest-{testbed-arch}'
930 - ../scripts/setup_executor_env.sh
933 - ../scripts/setup_vpp_ubuntu_docker_test.sh
936 - ../scripts/setup_vpp_ext_deps.sh
939 - ../scripts/vpp/csit-perf.sh
943 # Can be removed when all CSIT branches use correct archive directory.
954 - ../scripts/vpp/copy_archives.sh
956 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
958 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
960 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
962 project-type: freestyle
963 node: 'builder-{os}-prod-{executor-arch}'
968 - lf-infra-properties:
969 build-days-to-keep: "{build-days-to-keep}"
971 # Please keep parameters in alphabetical order
973 # Not sure whether not failing has any useful usage,
974 # but it does not hurt to have some flexibility for future.
975 - csit-fail-on-crc-mismatch-parameter:
976 fail-on-crc-mismatch: 'True'
977 - gerrit-csit-refspec-parameter
980 - gerrit-refspec-parameter:
981 refspec: '{branch-refspec}'
988 - gerrit-trigger-scm:
989 credentials-id: 'jenkins-gerrit-credentials'
990 refspec: '$GERRIT_REFSPEC'
991 choosing-strategy: 'gerrit'
994 - fdio-infra-wrappers-non-activity-timeout:
998 - gerrit-trigger-checkstyle:
1004 !include-raw-escape:
1005 - ../scripts/setup_executor_env.sh
1007 !include-raw-escape:
1008 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1010 !include-raw-escape:
1011 - ../scripts/vpp/check_crc.sh
1012 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1015 - fdio-infra-publish
1016 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1017 # [end] JOB TEMPLATE DEFINITIONS
1023 build-node: centos8-builder-2c-2g
1024 mvn-settings: vpp-settings
1026 - "gerrit-packagecloud-release-verify"
1029 name: vpp-packagecloud-release
1032 build-node: centos8-builder-2c-2g
1033 mvn-settings: vpp-settings
1035 - "gerrit-packagecloud-release-merge"
1036 - "{project-name}-gerrit-release-jobs"