1 # Copyright (c) 2021 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}'
41 repo-stream-part: 'master'
46 repo-stream-part: 'stable.2009'
52 repo-stream-part: 'stable.2101'
57 repo-stream-part: 'stable.2106'
58 executor-arch: 'x86_64'
59 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
63 # NOTE: The list of supported branches for each OS are maintained
64 # in .../ci-management/docker/scripts/lib_vpp.sh
65 # The job configuration must be derived from that list, thus
66 # modifications to both should be made at the same time.
67 # Since x86_64 is the primary development architecture, this
68 # project definition should be identical to the docker image
69 # build scripts. Other architectures may be a subset.
73 - 'vpp-verify-{stream}-{os}-{executor-arch}'
74 - 'vpp-merge-{stream}-{os}-{executor-arch}'
76 make-parallel-jobs: '4'
77 make-test-os: 'ubuntu-20.04'
82 repo-stream-part: 'master'
86 make-test-os: 'ubuntu-18.04'
87 repo-stream-part: 'stable.2009'
91 make-test-os: 'ubuntu-18.04'
92 repo-stream-part: 'stable.2101'
96 repo-stream-part: 'stable.2106'
99 repo-os-part: 'centos7'
101 repo-os-part: 'centos8'
103 repo-os-part: 'stretch'
105 repo-os-part: 'buster'
107 repo-os-part: 'ubuntu.bionic.main'
109 repo-os-part: 'ubuntu.focal.main'
110 executor-arch: 'x86_64'
112 # OS deprecated in master
119 # OS deprecated on 2106
124 # 2009 LTS supports all OS variants
125 # OS deprecated in 2101
130 # [end] VPP-X86_64 PROJECT
132 # VPP-DEBUG-X86_64 PROJECT
134 # Currently a periodic job due to intermittent failures.
135 # Limiting branches to master and 2009, since other branches
136 # may not get fixes for the intermittent failures.
139 name: vpp-debug-x86_64
141 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
143 make-parallel-jobs: '4'
144 make-test-os: 'ubuntu-20.04'
145 comment-trigger-value: 'debug-verify'
151 periodicity: 'H * * * *'
152 repo-stream-part: 'master'
154 branch: 'stable/2009'
156 make-test-os: 'ubuntu-18.04'
158 periodicity: 'H H * * *'
159 repo-stream-part: 'stable.2009'
162 repo-os-part: 'ubuntu.focal.main'
163 executor-arch: 'x86_64'
164 # [end] VPP-DEBUG-X86_64 PROJECT
166 # VPP-GCC-X86_64 PROJECT
170 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
172 executor-arch: 'x86_64'
175 repo-os-part: 'ubuntu.focal.main'
180 repo-stream-part: 'master'
182 branch: 'stable/2009'
184 repo-stream-part: 'stable.2009'
186 branch: 'stable/2101'
188 repo-stream-part: 'stable.2101'
190 branch: 'stable/2106'
192 repo-stream-part: 'stable.2106'
193 # [end] VPP-GCC-X86_64 PROJECT
195 # VPP-AARCH64 PROJECT
197 # NOTE: The list of supported branches for each OS are maintained
198 # in .../ci-management/docker/scripts/lib_vpp.sh
199 # The job configuration must be derived from that list, thus
200 # modifications to both should be made at the same time.
201 # The AARCH64 architecture is in the process of catching up
202 # with X86_64 in terms of OS coverage. Thus the jobs are
203 # a subset of those defined in the docker image build script.
207 - 'vpp-verify-{stream}-{os}-{executor-arch}'
208 - 'vpp-merge-{stream}-{os}-{executor-arch}'
210 make-parallel-jobs: '16'
211 make-test-os: 'ubuntu-20.04'
216 repo-stream-part: 'master'
218 branch: 'stable/2009'
220 make-test-os: 'ubuntu-18.04'
221 repo-stream-part: 'stable.2009'
223 branch: 'stable/2101'
225 make-test-os: 'ubuntu-18.04'
226 repo-stream-part: 'stable.2101'
228 branch: 'stable/2106'
230 repo-stream-part: 'stable.2106'
233 repo-os-part: 'centos8'
235 repo-os-part: 'ubuntu-arm.bionic.main'
237 repo-os-part: 'ubuntu.focal.main'
238 executor-arch: 'aarch64'
240 # OS deprecated in master
243 # OS introduced after 2009
248 # [end] VPP-AARCH64 PROJECT
250 # VPP-CSIT-VERIFY-DEVICE PROJECT
252 name: vpp-csit-verify-device
254 - 'vpp-csit-verify-device-perpatch':
255 make-parallel-jobs: '32'
257 - testbed-arch: '1n-tx2'
258 - 'vpp-csit-verify-device-periodic':
259 make-parallel-jobs: '32'
260 periodicity: 'H * * * *'
262 comment-trigger-value: 'devicetest-periodic'
266 - testbed-arch: '1n-skx'
273 repo-stream-part: 'master'
275 branch: 'stable/2009'
277 repo-stream-part: 'stable.2009'
279 branch: 'stable/2101'
281 repo-stream-part: 'stable.2101'
283 branch: 'stable/2106'
285 repo-stream-part: 'stable.2106'
289 executor-arch: 'x86_64'
292 executor-arch: 'aarch64'
294 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
296 # VPP-CSIT-VERIFY-PERF PROJECT
298 name: vpp-csit-verify-perf
300 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
307 repo-stream-part: 'master'
309 branch: 'stable/2009'
311 repo-stream-part: 'stable.2009'
313 branch: 'stable/2101'
315 repo-stream-part: 'stable.2101'
317 branch: 'stable/2106'
319 repo-stream-part: 'stable.2106'
323 executor-arch: 'x86_64'
326 executor-arch: 'x86_64'
329 executor-arch: 'x86_64'
332 executor-arch: 'x86_64'
335 executor-arch: 'x86_64'
338 executor-arch: 'x86_64'
341 executor-arch: 'aarch64'
342 make-parallel-jobs: '16'
345 executor-arch: 'aarch64'
346 make-parallel-jobs: '16'
348 # [end] VPP-CSIT-VERIFY-PERF PROJECT
350 # VPP-CSIT-API-CRC PROJECT
352 # Only master and LTS branches are supported.
355 name: vpp-csit-api-crc
357 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
359 executor-arch: 'x86_64'
366 branch: 'stable/2009'
368 repo-stream-part: 'stable.2009'
370 branch: 'stable/2101'
372 repo-stream-part: 'stable.2101'
374 branch: 'stable/2106'
376 repo-stream-part: 'stable.2106'
378 # [end] VPP-CSIT-API-CRC PROJECT
380 # LF RELENG VPP PROJECTS
385 - gerrit-info-yaml-verify
386 build-node: centos7-builder-2c-2g
395 # [end] LF RELENG VPP PROJECTS
396 # [end] PROJECT DEFINITIONS
398 # JOB TEMPLATE DEFINITIONS
400 # Please keep job templates in the same order as they are referenced
401 # in the project definitions above.
403 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
405 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
407 project-type: freestyle
408 node: 'builder-{os}-prod-{executor-arch}'
412 - lf-infra-properties
414 # Please keep parameters in alphabetical order
418 - gerrit-refspec-parameter:
419 refspec: '{branch-refspec}'
424 - repo-name-parameter:
425 repo-name: '{repo-stream-part}.ubuntu.bionic.main'
428 - gerrit-trigger-scm:
429 credentials-id: 'jenkins-gerrit-credentials'
430 refspec: '$GERRIT_REFSPEC'
431 choosing-strategy: 'gerrit'
434 - fdio-infra-wrappers:
435 build-timeout: '{build-timeout}'
436 - credentials-binding:
438 credential-id: VppApiCompatNotify
439 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
443 server-name: 'Primary'
445 - patchset-created-event:
446 exclude-drafts: 'true'
447 exclude-trivial-rebase: 'false'
448 exclude-no-code-change: 'false'
449 - draft-published-event
450 - comment-added-contains-event:
451 comment-contains-value: 'checkstylecheck'
452 - comment-added-contains-event:
453 comment-contains-value: 'docsonly'
454 - comment-added-contains-event:
455 comment-contains-value: 'recheck'
456 - comment-added-contains-event:
457 comment-contains-value: 'reverify'
458 # Following two are to cover missing functions of drafts
459 # going to review status
460 - comment-added-contains-event:
461 comment-contains-value: 'runtest'
462 - comment-added-contains-event:
463 comment-contains-value: 'This change is ready for review'
465 - project-compare-type: 'ANT'
466 project-pattern: '{project}'
468 - branch-compare-type: 'ANT'
469 branch-pattern: '**/{branch}'
471 - compare-type: REG_EXP
472 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
473 forbidden-file-paths:
474 - compare-type: REG_EXP
476 - compare-type: REG_EXP
477 pattern: .*extras\/emacs\/.*
478 disable-strict-forbidden-file-verification: 'true'
480 gerrit-build-notbuilt-verified-value: 0
481 gerrit-build-successful-verified-value: 1
482 # yamllint disable-line rule:line-length
483 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
484 # yamllint disable-line rule:line-length
485 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
486 successful-message: 'checkstyle_success'
496 - ../scripts/setup_executor_env.sh
499 - ../scripts/vpp/checkstyle.sh
502 - ../scripts/vpp/test-checkstyle.sh
505 - ../scripts/vpp/api-checkstyle.sh
508 - ../scripts/vpp/commitmsg.sh
513 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
515 # VPP-VERIFY JOB TEMPLATE
517 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
519 project-type: freestyle
520 node: 'builder-{os}-prod-{executor-arch}'
524 - lf-infra-properties:
525 build-days-to-keep: "{build-days-to-keep}"
527 # Please keep parameters in alphabetical order
531 - gerrit-refspec-parameter:
532 refspec: '{branch-refspec}'
533 - make-parallel-jobs-parameter:
534 make-parallel-jobs: '{make-parallel-jobs}'
535 - make-test-os-parameter:
536 make-test-os: '{make-test-os}'
541 - repo-name-parameter:
542 repo-name: '{repo-stream-part}.{repo-os-part}'
547 - gerrit-trigger-scm:
548 credentials-id: 'jenkins-gerrit-credentials'
549 refspec: '$GERRIT_REFSPEC'
550 choosing-strategy: 'gerrit'
553 - fdio-infra-wrappers:
557 - gerrit-trigger-checkstyle:
564 - ../scripts/setup_executor_env.sh
567 - ../scripts/setup_vpp_ubuntu_docker_test.sh
570 - ../scripts/setup_vpp_dpdk_dev_env.sh
573 - ../scripts/vpp/build.sh
577 # [end] VPP-VERIFY JOB TEMPLATE
579 # VPP-DEBUG-VERIFY JOB TEMPLATE
581 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
583 project-type: freestyle
584 node: 'builder-{os}-prod-{executor-arch}'
588 - lf-infra-properties:
589 build-days-to-keep: "{build-days-to-keep}"
591 # Please keep parameters in alphabetical order
595 - gerrit-refspec-parameter:
596 refspec: '{branch-refspec}'
597 - make-parallel-jobs-parameter:
598 make-parallel-jobs: '{make-parallel-jobs}'
599 - make-test-os-parameter:
600 make-test-os: '{make-test-os}'
605 - repo-name-parameter:
606 repo-name: '{repo-stream-part}.ubuntu.bionic.main'
611 - gerrit-trigger-scm:
612 credentials-id: 'jenkins-gerrit-credentials'
613 refspec: '$GERRIT_REFSPEC'
614 choosing-strategy: 'gerrit'
617 - fdio-infra-wrappers:
618 build-timeout: '{build-timeout}'
621 - timed: '{periodicity}'
622 - gerrit-trigger-manually-triggered:
623 comment-trigger-value: '{comment-trigger-value}'
630 - ../scripts/setup_executor_env.sh
633 - ../scripts/setup_vpp_ubuntu_docker_test.sh
636 - ../scripts/setup_vpp_dpdk_dev_env.sh
639 - ../scripts/vpp/debug-build.sh
643 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
645 # VPP-MERGE JOB TEMPLATE
647 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
649 project-type: freestyle
650 node: 'builder-{os}-prod-{executor-arch}'
653 - lf-infra-properties:
654 build-days-to-keep: "{build-days-to-keep}"
656 # Please keep parameters in alphabetical order
660 - make-parallel-jobs-parameter:
661 make-parallel-jobs: '{make-parallel-jobs}'
662 - make-test-os-parameter:
663 make-test-os: '{make-test-os}'
668 - repo-name-parameter:
669 repo-name: '{repo-stream-part}.{repo-os-part}'
674 - gerrit-trigger-scm:
675 credentials-id: 'jenkins-gerrit-credentials'
677 choosing-strategy: 'default'
680 - fdio-infra-wrappers:
684 - gerrit-trigger-patch-merged:
689 - config-file-provider:
691 - file-id: '.packagecloud'
692 target: '/root/.packagecloud'
693 - config-file-provider:
695 - file-id: 'packagecloud_api'
696 target: '/root/packagecloud_api'
699 - ../scripts/setup_executor_env.sh
702 - ../scripts/setup_vpp_ubuntu_docker_test.sh
705 - ../scripts/setup_vpp_dpdk_dev_env.sh
708 - ../scripts/vpp/build.sh
710 - provide-maven-settings:
711 settings-file: 'vpp-settings'
712 global-settings-file: 'global-settings'
715 - ../scripts/packagecloud_push.sh
719 # [end] VPP-MERGE JOB TEMPLATE
721 # VPP-GCC-VERIFY JOB TEMPLATE
723 name: 'vpp-gcc-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 - gerrit-refspec-parameter:
738 refspec: '{branch-refspec}'
739 - make-parallel-jobs-parameter:
740 make-parallel-jobs: '{make-parallel-jobs}'
745 - repo-name-parameter:
746 repo-name: '{repo-stream-part}.{repo-os-part}'
751 - gerrit-trigger-scm:
752 credentials-id: 'jenkins-gerrit-credentials'
753 refspec: '$GERRIT_REFSPEC'
754 choosing-strategy: 'gerrit'
757 - fdio-infra-wrappers:
761 - gerrit-trigger-checkstyle:
768 - ../scripts/setup_executor_env.sh
771 - ../scripts/setup_vpp_ubuntu_docker_test.sh
774 - ../scripts/setup_vpp_dpdk_dev_env.sh
777 - ../scripts/vpp/gcc-build.sh
781 # [end] VPP-GCC-VERIFY JOB TEMPLATE
783 # VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
785 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
786 id: 'vpp-csit-verify-device-periodic'
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}'
823 - repo-name-parameter:
824 repo-name: '{repo-stream-part}.ubuntu.bionic.main'
829 - gerrit-trigger-scm:
830 credentials-id: 'jenkins-gerrit-credentials'
831 refspec: '$GERRIT_REFSPEC'
832 choosing-strategy: 'default'
835 - fdio-infra-wrappers:
839 - timed: '{periodicity}'
840 - gerrit-trigger-manually-triggered:
841 comment-trigger-value: '{comment-trigger-value}'
848 - ../scripts/setup_executor_env.sh
851 - ../scripts/setup_vpp_ubuntu_docker_test.sh
854 - ../scripts/setup_vpp_dpdk_dev_env.sh
857 - ../scripts/vpp/csit-device.sh
861 # [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
863 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
865 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
866 id: 'vpp-csit-verify-device-perpatch'
871 <li>csit-builder-{os}-prod-{executor-arch}
873 <li>testbed architecture
879 project-type: freestyle
880 node: 'csit-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 - gerrit-csit-refspec-parameter
891 - gerrit-event-comment-text-parameter
892 - gerrit-event-type-parameter
895 - gerrit-refspec-parameter:
896 refspec: '{branch-refspec}'
897 - make-parallel-jobs-parameter:
898 make-parallel-jobs: '{make-parallel-jobs}'
903 - repo-name-parameter:
904 repo-name: '{repo-stream-part}.ubuntu.bionic.main'
909 - gerrit-trigger-scm:
910 credentials-id: 'jenkins-gerrit-credentials'
911 refspec: '$GERRIT_REFSPEC'
912 choosing-strategy: 'gerrit'
915 - fdio-infra-wrappers:
919 - 'gerrit-trigger-vpp-csit-devicetest-full':
922 skip-vote: '{skip-vote}'
927 - ../scripts/setup_executor_env.sh
930 - ../scripts/setup_vpp_ubuntu_docker_test.sh
933 - ../scripts/setup_vpp_dpdk_dev_env.sh
936 - ../scripts/vpp/csit-device.sh
940 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
942 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
944 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
949 <li>builder-{os}-prod-{executor-arch}
951 <li>testbed architecture
956 Contrary to csit-vpp job, this also measures the parent performance,
957 and fails if performance regression is detected.
958 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
961 project-type: freestyle
962 node: 'builder-{os}-prod-{executor-arch}'
967 - lf-infra-properties:
968 build-days-to-keep: "{build-days-to-keep}"
970 # Please keep parameters in alphabetical order
972 - csit-perf-trial-duration-parameter:
973 csit-perf-trial-duration: "10.0"
974 - csit-perf-trial-multiplicity-parameter:
975 csit-perf-trial-multiplicity: "5"
976 - gerrit-csit-refspec-parameter
977 - gerrit-event-comment-text-parameter
978 - gerrit-event-type-parameter
979 - gerrit-refspec-parameter:
980 refspec: '{branch-refspec}'
983 - make-parallel-jobs-parameter:
984 make-parallel-jobs: '{make-parallel-jobs}'
989 - repo-name-parameter:
990 repo-name: '{repo-stream-part}.ubuntu.bionic.main'
995 - gerrit-trigger-scm:
996 credentials-id: 'jenkins-gerrit-credentials'
997 refspec: '$GERRIT_REFSPEC'
998 choosing-strategy: 'gerrit'
1001 - fdio-infra-wrappers-non-activity-timeout:
1005 - gerrit-trigger-csit-perftest:
1006 project: '{project}'
1008 trigger-word: 'perftest-{testbed-arch}'
1013 !include-raw-escape:
1014 - ../scripts/setup_executor_env.sh
1016 !include-raw-escape:
1017 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1019 !include-raw-escape:
1020 - ../scripts/setup_vpp_dpdk_dev_env.sh
1022 !include-raw-escape:
1023 - ../scripts/vpp/csit-perf.sh
1027 # Can be removed when all CSIT branches use correct archive directory.
1037 !include-raw-escape:
1038 - ../scripts/vpp/copy_archives.sh
1040 output-path: 'archives/csit_current/0/'
1042 - fdio-infra-publish
1043 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1045 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1047 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1049 project-type: freestyle
1050 node: 'builder-{os}-prod-{executor-arch}'
1055 - lf-infra-properties:
1056 build-days-to-keep: "{build-days-to-keep}"
1058 # Please keep parameters in alphabetical order
1060 # Not sure whether not failing has any useful usage,
1061 # but it does not hurt to have some flexibility for future.
1062 - csit-fail-on-crc-mismatch-parameter:
1063 fail-on-crc-mismatch: 'True'
1064 - gerrit-csit-refspec-parameter
1067 - gerrit-refspec-parameter:
1068 refspec: '{branch-refspec}'
1069 - project-parameter:
1070 project: '{project}'
1075 - gerrit-trigger-scm:
1076 credentials-id: 'jenkins-gerrit-credentials'
1077 refspec: '$GERRIT_REFSPEC'
1078 choosing-strategy: 'gerrit'
1081 - fdio-infra-wrappers-non-activity-timeout:
1085 - gerrit-trigger-checkstyle:
1091 !include-raw-escape:
1092 - ../scripts/setup_executor_env.sh
1094 !include-raw-escape:
1095 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1097 !include-raw-escape:
1098 - ../scripts/vpp/check_crc.sh
1099 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1102 - fdio-infra-publish
1103 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1104 # [end] JOB TEMPLATE DEFINITIONS