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}'
53 executor-arch: 'x86_64'
54 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
58 # NOTE: The list of supported branches for each OS are maintained
59 # in .../ci-management/docker/scripts/lib_vpp.sh
60 # The job configuration must be derived from that list, thus
61 # modifications to both should be made at the same time.
62 # Since x86_64 is the primary development architecture, this
63 # project definition should be identical to the docker image
64 # build scripts. Other architectures may be a subset.
68 - 'vpp-verify-{stream}-{os}-{executor-arch}'
69 - 'vpp-merge-{stream}-{os}-{executor-arch}'
71 make-parallel-jobs: '4'
72 make-test-os: 'ubuntu-20.04'
80 make-test-os: 'ubuntu-18.04'
84 make-test-os: 'ubuntu-18.04'
98 executor-arch: 'x86_64'
100 # OS deprecated in master
107 # OS deprecated on 2106
112 # OS deprecated on 2110
119 # 2009 LTS supports all OS variants
120 # OS deprecated in 2101
125 # [end] VPP-X86_64 PROJECT
127 # VPP-DEBUG-X86_64 PROJECT
129 # Currently a periodic job due to intermittent failures.
130 # Limiting branches to master and 2009, since other branches
131 # may not get fixes for the intermittent failures.
134 name: vpp-debug-x86_64
136 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
138 make-parallel-jobs: '4'
139 make-test-os: 'ubuntu-20.04'
140 comment-trigger-value: 'debug-verify'
146 periodicity: 'H * * * *'
148 executor-arch: 'x86_64'
149 # [end] VPP-DEBUG-X86_64 PROJECT
151 # VPP-GCC-X86_64 PROJECT
155 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
157 executor-arch: 'x86_64'
164 branch: 'stable/2009'
167 branch: 'stable/2101'
170 branch: 'stable/2106'
173 branch: 'stable/2110'
175 # [end] VPP-GCC-X86_64 PROJECT
177 # VPP-AARCH64 PROJECT
179 # NOTE: The list of supported branches for each OS are maintained
180 # in .../ci-management/docker/scripts/lib_vpp.sh
181 # The job configuration must be derived from that list, thus
182 # modifications to both should be made at the same time.
183 # The AARCH64 architecture is in the process of catching up
184 # with X86_64 in terms of OS coverage. Thus the jobs are
185 # a subset of those defined in the docker image build script.
189 - 'vpp-verify-{stream}-{os}-{executor-arch}'
190 - 'vpp-merge-{stream}-{os}-{executor-arch}'
192 make-parallel-jobs: '16'
193 make-test-os: 'ubuntu-20.04'
199 branch: 'stable/2009'
201 make-test-os: 'ubuntu-18.04'
203 branch: 'stable/2101'
205 make-test-os: 'ubuntu-18.04'
207 branch: 'stable/2106'
210 branch: 'stable/2110'
216 executor-arch: 'aarch64'
218 # OS deprecated in master
221 # OS deprecated in 2110
224 # OS introduced after 2009
229 # [end] VPP-AARCH64 PROJECT
231 # VPP-CSIT-VERIFY-DEVICE PROJECT
233 name: vpp-csit-verify-device
235 - 'vpp-csit-verify-device-perpatch':
236 make-parallel-jobs: '32'
238 - testbed-arch: '1n-tx2'
239 - 'vpp-csit-verify-device-periodic':
240 make-parallel-jobs: '32'
241 periodicity: 'H * * * *'
243 comment-trigger-value: 'devicetest-periodic'
247 - testbed-arch: '1n-skx'
255 branch: 'stable/2009'
258 branch: 'stable/2101'
261 branch: 'stable/2106'
264 branch: 'stable/2110'
269 executor-arch: 'x86_64'
272 executor-arch: 'aarch64'
274 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
276 # VPP-CSIT-VERIFY-PERF PROJECT
278 name: vpp-csit-verify-perf
280 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
288 branch: 'stable/2009'
291 branch: 'stable/2101'
294 branch: 'stable/2106'
297 branch: 'stable/2110'
302 executor-arch: 'x86_64'
305 executor-arch: 'x86_64'
308 executor-arch: 'x86_64'
311 executor-arch: 'x86_64'
314 executor-arch: 'x86_64'
317 executor-arch: 'x86_64'
320 executor-arch: 'aarch64'
321 make-parallel-jobs: '16'
324 executor-arch: 'aarch64'
325 make-parallel-jobs: '16'
327 # [end] VPP-CSIT-VERIFY-PERF PROJECT
329 # VPP-CSIT-API-CRC PROJECT
331 # Only master and LTS branches are supported.
334 name: vpp-csit-api-crc
336 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
338 executor-arch: 'x86_64'
345 branch: 'stable/2009'
348 branch: 'stable/2101'
351 branch: 'stable/2106'
354 branch: 'stable/2110'
357 # [end] VPP-CSIT-API-CRC PROJECT
359 # LF RELENG VPP PROJECTS
364 - gerrit-info-yaml-verify
365 build-node: centos7-builder-2c-2g
374 # [end] LF RELENG VPP PROJECTS
375 # [end] PROJECT DEFINITIONS
377 # JOB TEMPLATE DEFINITIONS
379 # Please keep job templates in the same order as they are referenced
380 # in the project definitions above.
382 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
384 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
386 project-type: freestyle
387 node: 'builder-{os}-prod-{executor-arch}'
391 - lf-infra-properties:
392 build-days-to-keep: "{build-days-to-keep}"
394 # Please keep parameters in alphabetical order
398 - gerrit-refspec-parameter:
399 refspec: '{branch-refspec}'
406 - gerrit-trigger-scm:
407 credentials-id: 'jenkins-gerrit-credentials'
408 refspec: '$GERRIT_REFSPEC'
409 choosing-strategy: 'gerrit'
412 - fdio-infra-wrappers:
413 build-timeout: '{build-timeout}'
414 - credentials-binding:
416 credential-id: VppApiCompatNotify
417 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
421 server-name: 'Primary'
423 - patchset-created-event:
424 exclude-drafts: 'true'
425 exclude-trivial-rebase: 'false'
426 exclude-no-code-change: 'false'
427 - draft-published-event
428 - comment-added-contains-event:
429 comment-contains-value: 'checkstylecheck'
430 - comment-added-contains-event:
431 comment-contains-value: 'docsonly'
432 - comment-added-contains-event:
433 comment-contains-value: 'recheck'
434 - comment-added-contains-event:
435 comment-contains-value: 'reverify'
436 # Following two are to cover missing functions of drafts
437 # going to review status
438 - comment-added-contains-event:
439 comment-contains-value: 'runtest'
440 - comment-added-contains-event:
441 comment-contains-value: 'This change is ready for review'
443 - project-compare-type: 'ANT'
444 project-pattern: '{project}'
446 - branch-compare-type: 'ANT'
447 branch-pattern: '**/{branch}'
449 - compare-type: REG_EXP
450 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
451 forbidden-file-paths:
452 - compare-type: REG_EXP
454 - compare-type: REG_EXP
455 pattern: .*extras\/emacs\/.*
456 disable-strict-forbidden-file-verification: 'true'
458 gerrit-build-notbuilt-verified-value: 0
459 gerrit-build-successful-verified-value: 1
460 # yamllint disable-line rule:line-length
461 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
462 # yamllint disable-line rule:line-length
463 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
464 successful-message: 'checkstyle_success'
474 - ../scripts/setup_executor_env.sh
477 - ../scripts/vpp/checkstyle.sh
480 - ../scripts/vpp/test-checkstyle.sh
483 - ../scripts/vpp/api-checkstyle.sh
486 - ../scripts/vpp/commitmsg.sh
491 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
493 # VPP-VERIFY JOB TEMPLATE
495 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
497 project-type: freestyle
498 node: 'builder-{os}-prod-{executor-arch}'
502 - lf-infra-properties:
503 build-days-to-keep: "{build-days-to-keep}"
505 # Please keep parameters in alphabetical order
509 - gerrit-refspec-parameter:
510 refspec: '{branch-refspec}'
511 - make-parallel-jobs-parameter:
512 make-parallel-jobs: '{make-parallel-jobs}'
513 - make-test-os-parameter:
514 make-test-os: '{make-test-os}'
523 - gerrit-trigger-scm:
524 credentials-id: 'jenkins-gerrit-credentials'
525 refspec: '$GERRIT_REFSPEC'
526 choosing-strategy: 'gerrit'
529 - fdio-infra-wrappers:
533 - gerrit-trigger-checkstyle:
540 - ../scripts/setup_executor_env.sh
543 - ../scripts/setup_vpp_ubuntu_docker_test.sh
546 - ../scripts/setup_vpp_dpdk_dev_env.sh
549 - ../scripts/vpp/build.sh
553 # [end] VPP-VERIFY JOB TEMPLATE
555 # VPP-DEBUG-VERIFY JOB TEMPLATE
557 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
559 project-type: freestyle
560 node: 'builder-{os}-prod-{executor-arch}'
564 - lf-infra-properties:
565 build-days-to-keep: "{build-days-to-keep}"
567 # Please keep parameters in alphabetical order
571 - gerrit-refspec-parameter:
572 refspec: '{branch-refspec}'
573 - make-parallel-jobs-parameter:
574 make-parallel-jobs: '{make-parallel-jobs}'
575 - make-test-os-parameter:
576 make-test-os: '{make-test-os}'
585 - gerrit-trigger-scm:
586 credentials-id: 'jenkins-gerrit-credentials'
587 refspec: '$GERRIT_REFSPEC'
588 choosing-strategy: 'gerrit'
591 - fdio-infra-wrappers:
592 build-timeout: '{build-timeout}'
595 - timed: '{periodicity}'
596 - gerrit-trigger-manually-triggered:
597 comment-trigger-value: '{comment-trigger-value}'
604 - ../scripts/setup_executor_env.sh
607 - ../scripts/setup_vpp_ubuntu_docker_test.sh
610 - ../scripts/setup_vpp_dpdk_dev_env.sh
613 - ../scripts/vpp/debug-build.sh
617 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
619 # VPP-MERGE JOB TEMPLATE
621 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
623 project-type: freestyle
624 node: 'builder-{os}-prod-{executor-arch}'
627 - lf-infra-properties:
628 build-days-to-keep: "{build-days-to-keep}"
630 # Please keep parameters in alphabetical order
634 - make-parallel-jobs-parameter:
635 make-parallel-jobs: '{make-parallel-jobs}'
636 - make-test-os-parameter:
637 make-test-os: '{make-test-os}'
646 - gerrit-trigger-scm:
647 credentials-id: 'jenkins-gerrit-credentials'
649 choosing-strategy: 'default'
652 - fdio-infra-wrappers:
656 - gerrit-trigger-patch-merged:
661 - config-file-provider:
663 - file-id: '.packagecloud'
664 target: '/root/.packagecloud'
665 - config-file-provider:
667 - file-id: 'packagecloud_api'
668 target: '/root/packagecloud_api'
671 - ../scripts/setup_executor_env.sh
674 - ../scripts/setup_vpp_ubuntu_docker_test.sh
677 - ../scripts/setup_vpp_dpdk_dev_env.sh
680 - ../scripts/vpp/build.sh
683 - ../scripts/packagecloud_push.sh
687 # [end] VPP-MERGE JOB TEMPLATE
689 # VPP-GCC-VERIFY JOB TEMPLATE
691 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
693 project-type: freestyle
694 node: 'builder-{os}-prod-{executor-arch}'
698 - lf-infra-properties:
699 build-days-to-keep: "{build-days-to-keep}"
701 # Please keep parameters in alphabetical order
705 - gerrit-refspec-parameter:
706 refspec: '{branch-refspec}'
707 - make-parallel-jobs-parameter:
708 make-parallel-jobs: '{make-parallel-jobs}'
717 - gerrit-trigger-scm:
718 credentials-id: 'jenkins-gerrit-credentials'
719 refspec: '$GERRIT_REFSPEC'
720 choosing-strategy: 'gerrit'
723 - fdio-infra-wrappers:
727 - gerrit-trigger-checkstyle:
734 - ../scripts/setup_executor_env.sh
737 - ../scripts/setup_vpp_ubuntu_docker_test.sh
740 - ../scripts/setup_vpp_dpdk_dev_env.sh
743 - ../scripts/vpp/gcc-build.sh
747 # [end] VPP-GCC-VERIFY JOB TEMPLATE
749 # VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
751 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
752 id: 'vpp-csit-verify-device-periodic'
757 <li>csit-builder-{os}-prod-{executor-arch}
759 <li>testbed architecture
765 project-type: freestyle
766 node: 'csit-builder-{os}-prod-{executor-arch}'
771 - lf-infra-properties:
772 build-days-to-keep: "{build-days-to-keep}"
774 # Please keep parameters in alphabetical order
776 - gerrit-csit-refspec-parameter
777 - gerrit-event-comment-text-parameter
778 - gerrit-event-type-parameter
781 - gerrit-refspec-parameter:
782 refspec: '{branch-refspec}'
783 - make-parallel-jobs-parameter:
784 make-parallel-jobs: '{make-parallel-jobs}'
793 - gerrit-trigger-scm:
794 credentials-id: 'jenkins-gerrit-credentials'
795 refspec: '$GERRIT_REFSPEC'
796 choosing-strategy: 'default'
799 - fdio-infra-wrappers:
803 - timed: '{periodicity}'
804 - gerrit-trigger-manually-triggered:
805 comment-trigger-value: '{comment-trigger-value}'
812 - ../scripts/setup_executor_env.sh
815 - ../scripts/setup_vpp_ubuntu_docker_test.sh
818 - ../scripts/setup_vpp_dpdk_dev_env.sh
821 - ../scripts/vpp/csit-device.sh
825 # [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
827 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
829 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
830 id: 'vpp-csit-verify-device-perpatch'
835 <li>csit-builder-{os}-prod-{executor-arch}
837 <li>testbed architecture
843 project-type: freestyle
844 node: 'csit-builder-{os}-prod-{executor-arch}'
849 - lf-infra-properties:
850 build-days-to-keep: "{build-days-to-keep}"
852 # Please keep parameters in alphabetical order
854 - gerrit-csit-refspec-parameter
855 - gerrit-event-comment-text-parameter
856 - gerrit-event-type-parameter
859 - gerrit-refspec-parameter:
860 refspec: '{branch-refspec}'
861 - make-parallel-jobs-parameter:
862 make-parallel-jobs: '{make-parallel-jobs}'
871 - gerrit-trigger-scm:
872 credentials-id: 'jenkins-gerrit-credentials'
873 refspec: '$GERRIT_REFSPEC'
874 choosing-strategy: 'gerrit'
877 - fdio-infra-wrappers:
881 - 'gerrit-trigger-vpp-csit-devicetest-full':
884 skip-vote: '{skip-vote}'
889 - ../scripts/setup_executor_env.sh
892 - ../scripts/setup_vpp_ubuntu_docker_test.sh
895 - ../scripts/setup_vpp_dpdk_dev_env.sh
898 - ../scripts/vpp/csit-device.sh
902 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
904 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
906 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
911 <li>builder-{os}-prod-{executor-arch}
913 <li>testbed architecture
918 Contrary to csit-vpp job, this also measures the parent performance,
919 and fails if performance regression is detected.
920 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
923 project-type: freestyle
924 node: 'builder-{os}-prod-{executor-arch}'
929 - lf-infra-properties:
930 build-days-to-keep: "{build-days-to-keep}"
932 # Please keep parameters in alphabetical order
934 - csit-perf-trial-duration-parameter:
935 csit-perf-trial-duration: "10.0"
936 - csit-perf-trial-multiplicity-parameter:
937 csit-perf-trial-multiplicity: "5"
938 - gerrit-csit-refspec-parameter
939 - gerrit-event-comment-text-parameter
940 - gerrit-event-type-parameter
941 - gerrit-refspec-parameter:
942 refspec: '{branch-refspec}'
945 - make-parallel-jobs-parameter:
946 make-parallel-jobs: '{make-parallel-jobs}'
955 - gerrit-trigger-scm:
956 credentials-id: 'jenkins-gerrit-credentials'
957 refspec: '$GERRIT_REFSPEC'
958 choosing-strategy: 'gerrit'
961 - fdio-infra-wrappers-non-activity-timeout:
965 - gerrit-trigger-csit-perftest:
968 trigger-word: 'perftest-{testbed-arch}'
974 - ../scripts/setup_executor_env.sh
977 - ../scripts/setup_vpp_ubuntu_docker_test.sh
980 - ../scripts/setup_vpp_dpdk_dev_env.sh
983 - ../scripts/vpp/csit-perf.sh
987 # Can be removed when all CSIT branches use correct archive directory.
998 - ../scripts/vpp/copy_archives.sh
1000 output-path: 'archives/csit_current/0/'
1002 - fdio-infra-publish
1003 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1005 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1007 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1009 project-type: freestyle
1010 node: 'builder-{os}-prod-{executor-arch}'
1015 - lf-infra-properties:
1016 build-days-to-keep: "{build-days-to-keep}"
1018 # Please keep parameters in alphabetical order
1020 # Not sure whether not failing has any useful usage,
1021 # but it does not hurt to have some flexibility for future.
1022 - csit-fail-on-crc-mismatch-parameter:
1023 fail-on-crc-mismatch: 'True'
1024 - gerrit-csit-refspec-parameter
1027 - gerrit-refspec-parameter:
1028 refspec: '{branch-refspec}'
1029 - project-parameter:
1030 project: '{project}'
1035 - gerrit-trigger-scm:
1036 credentials-id: 'jenkins-gerrit-credentials'
1037 refspec: '$GERRIT_REFSPEC'
1038 choosing-strategy: 'gerrit'
1041 - fdio-infra-wrappers-non-activity-timeout:
1045 - gerrit-trigger-checkstyle:
1051 !include-raw-escape:
1052 - ../scripts/setup_executor_env.sh
1054 !include-raw-escape:
1055 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1057 !include-raw-escape:
1058 - ../scripts/vpp/check_crc.sh
1059 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1062 - fdio-infra-publish
1063 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1064 # [end] JOB TEMPLATE DEFINITIONS