1 # Copyright (c) 2022 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 22.10
54 # os deprecated in master
60 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
64 # NOTE: The list of supported branches for each OS are maintained
65 # in .../ci-management/docker/scripts/lib_vpp.sh
66 # The job configuration must be derived from that list, thus
67 # modifications to both should be made at the same time.
68 # Since x86_64 is the primary development architecture, this
69 # project definition should be identical to the docker image
70 # build scripts. Other architectures may be a subset.
74 - 'vpp-verify-{stream}-{os}-{executor-arch}'
75 - 'vpp-merge-{stream}-{os}-{executor-arch}'
77 make-parallel-jobs: '4'
82 make-test-os: 'ubuntu-22.04'
83 make-test-multiworker-os: 'debian-11'
87 make-test-os: 'ubuntu-20.04'
88 make-test-multiworker-os: 'debian-11'
92 make-test-os: 'ubuntu-20.04'
93 make-test-multiworker-os: 'debian-11'
98 executor-arch: 'x86_64'
103 # [end] VPP-X86_64 PROJECT
105 # VPP-DEBUG-X86_64 PROJECT
107 # Currently a periodic job due to intermittent failures.
108 # Limiting branches to master, since other branches
109 # may not get fixes for the intermittent failures.
112 name: vpp-debug-x86_64
114 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
116 make-parallel-jobs: '4'
117 make-test-os: 'ubuntu-22.04'
118 comment-trigger-value: 'debug-verify'
123 make-test-os: 'ubuntu-22.04'
125 executor-arch: 'x86_64'
127 # [end] VPP-DEBUG-X86_64 PROJECT
129 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
131 # Currently a periodic job due to intermittent failures.
132 # Limiting branches to master, since other branches
133 # may not get fixes for the intermittent failures.
136 name: vpp-dpdk-rdma-version-mismatch-x86_64
138 - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
140 make-test-os: 'ubuntu-22.04'
141 comment-trigger-value: 'dpdk-rdma-version-mismatch'
145 # Once per day at 00:15
146 periodicity: '15 0 * * 0-6'
148 executor-arch: 'x86_64'
150 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
152 # VPP-GCC-X86_64 PROJECT
156 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
158 make-parallel-jobs: '4'
162 executor-arch: 'x86_64'
168 branch: 'stable/2206'
171 branch: 'stable/2210'
174 # os deprecated in 22.10
177 # os deprecated in master
183 # [end] VPP-GCC-X86_64 PROJECT
185 # VPP-AARCH64 PROJECT
187 # NOTE: The list of supported branches for each OS are maintained
188 # in .../ci-management/docker/scripts/lib_vpp.sh
189 # The job configuration must be derived from that list, thus
190 # modifications to both should be made at the same time.
191 # The AARCH64 architecture is in the process of catching up
192 # with X86_64 in terms of OS coverage. Thus the jobs are
193 # a subset of those defined in the docker image build script.
197 - 'vpp-verify-{stream}-{os}-{executor-arch}'
198 - 'vpp-merge-{stream}-{os}-{executor-arch}'
200 make-parallel-jobs: '4'
205 make-test-os: 'ubuntu-22.04'
206 make-test-multiworker-os: ''
208 branch: 'stable/2206'
210 make-test-os: 'ubuntu-20.04'
211 make-test-multiworker-os: ''
213 branch: 'stable/2210'
215 make-test-os: 'ubuntu-20.04'
216 make-test-multiworker-os: ''
220 executor-arch: 'aarch64'
225 # [end] VPP-AARCH64 PROJECT
227 # VPP-CSIT-VERIFY-DEVICE PROJECT
229 name: vpp-csit-verify-device
231 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
232 make-parallel-jobs: '32'
240 branch: 'stable/2210'
245 executor-arch: 'x86_64'
248 executor-arch: 'aarch64'
250 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
252 # VPP-CSIT-VERIFY-PERF PROJECT
254 name: vpp-csit-verify-perf
256 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
266 executor-arch: 'x86_64'
269 executor-arch: 'x86_64'
272 executor-arch: 'x86_64'
275 executor-arch: 'x86_64'
278 executor-arch: 'x86_64'
281 executor-arch: 'x86_64'
284 executor-arch: 'aarch64'
285 make-parallel-jobs: '16'
288 executor-arch: 'aarch64'
289 make-parallel-jobs: '16'
292 executor-arch: 'aarch64'
293 make-parallel-jobs: '16'
296 executor-arch: 'x86_64'
297 # [end] VPP-CSIT-VERIFY-PERF PROJECT
299 # VPP-CSIT-API-CRC PROJECT
301 # Only master and LTS branches are supported.
304 name: vpp-csit-api-crc
306 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
308 executor-arch: 'x86_64'
315 branch: 'stable/2206'
318 branch: 'stable/2210'
324 # os deprecated in 22.10
327 # os deprecated in master
333 # [end] VPP-CSIT-API-CRC PROJECT
335 # LF RELENG VPP PROJECTS
340 - gerrit-info-yaml-verify
341 build-node: centos7-builder-2c-2g
350 # [end] LF RELENG VPP PROJECTS
351 # [end] PROJECT DEFINITIONS
353 # JOB TEMPLATE DEFINITIONS
355 # Please keep job templates in the same order as they are referenced
356 # in the project definitions above.
358 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
360 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
362 project-type: freestyle
363 node: 'builder-{os}-prod-{executor-arch}'
367 - lf-infra-properties:
368 build-days-to-keep: "{build-days-to-keep}"
370 # Please keep parameters in alphabetical order
374 - gerrit-refspec-parameter:
375 refspec: '{branch-refspec}'
382 - gerrit-trigger-scm:
383 credentials-id: 'jenkins-gerrit-credentials'
384 refspec: '$GERRIT_REFSPEC'
385 choosing-strategy: 'gerrit'
388 - fdio-infra-wrappers:
389 build-timeout: '{build-timeout}'
390 - credentials-binding:
392 credential-id: VppApiCompatNotify
393 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
397 server-name: 'Primary'
399 - patchset-created-event:
400 exclude-drafts: 'true'
401 exclude-trivial-rebase: 'false'
402 exclude-no-code-change: 'false'
403 - draft-published-event
404 - comment-added-contains-event:
405 comment-contains-value: 'checkstylecheck'
406 - comment-added-contains-event:
407 comment-contains-value: 'docsonly'
408 - comment-added-contains-event:
409 comment-contains-value: 'recheck'
410 - comment-added-contains-event:
411 comment-contains-value: 'reverify'
412 # Following two are to cover missing functions of drafts
413 # going to review status
414 - comment-added-contains-event:
415 comment-contains-value: 'runtest'
416 - comment-added-contains-event:
417 comment-contains-value: 'This change is ready for review'
419 - project-compare-type: 'ANT'
420 project-pattern: '{project}'
422 - branch-compare-type: 'ANT'
423 branch-pattern: '**/{branch}'
425 - compare-type: REG_EXP
426 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
427 forbidden-file-paths:
428 - compare-type: REG_EXP
429 pattern: .*extras\/emacs\/.*
430 disable-strict-forbidden-file-verification: 'true'
432 gerrit-build-notbuilt-verified-value: 0
433 gerrit-build-successful-verified-value: 1
434 # yamllint disable-line rule:line-length
435 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
436 # yamllint disable-line rule:line-length
437 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
438 successful-message: 'checkstyle_success'
448 - ../scripts/setup_executor_env.sh
451 - ../scripts/vpp/checkstyle.sh
454 - ../scripts/vpp/test-checkstyle.sh
457 - ../scripts/vpp/api-checkstyle.sh
460 - ../scripts/vpp/commitmsg.sh
463 - ../scripts/vpp/docs_spell.sh
468 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
470 # VPP-VERIFY JOB TEMPLATE
472 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
474 project-type: freestyle
475 node: 'builder-{os}-prod-{executor-arch}'
479 - lf-infra-properties:
480 build-days-to-keep: "{build-days-to-keep}"
482 # Please keep parameters in alphabetical order
486 - gerrit-refspec-parameter:
487 refspec: '{branch-refspec}'
488 - make-parallel-jobs-parameter:
489 make-parallel-jobs: '{make-parallel-jobs}'
490 - make-test-os-parameter:
491 make-test-os: '{make-test-os}'
492 - make-test-multiworker-os-parameter:
493 make-test-multiworker-os: '{make-test-multiworker-os}'
502 - gerrit-trigger-scm:
503 credentials-id: 'jenkins-gerrit-credentials'
504 refspec: '$GERRIT_REFSPEC'
505 choosing-strategy: 'gerrit'
508 - fdio-infra-wrappers:
512 - gerrit-trigger-checkstyle:
519 - ../scripts/setup_executor_env.sh
522 - ../scripts/setup_vpp_ubuntu_docker_test.sh
525 - ../scripts/setup_vpp_ext_deps.sh
528 - ../scripts/vpp/build.sh
532 # [end] VPP-VERIFY JOB TEMPLATE
534 # VPP-DEBUG-VERIFY JOB TEMPLATE
536 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
538 project-type: freestyle
539 node: 'builder-{os}-prod-{executor-arch}'
543 - lf-infra-properties:
544 build-days-to-keep: "{build-days-to-keep}"
546 # Please keep parameters in alphabetical order
550 - gerrit-refspec-parameter:
551 refspec: '{branch-refspec}'
552 - make-parallel-jobs-parameter:
553 make-parallel-jobs: '{make-parallel-jobs}'
554 - make-test-os-parameter:
555 make-test-os: '{make-test-os}'
564 - gerrit-trigger-scm:
565 credentials-id: 'jenkins-gerrit-credentials'
566 refspec: '$GERRIT_REFSPEC'
567 choosing-strategy: 'gerrit'
570 - fdio-infra-wrappers:
571 build-timeout: '{build-timeout}'
574 - gerrit-trigger-checkstyle-nonvoting:
581 - ../scripts/setup_executor_env.sh
584 - ../scripts/setup_vpp_ubuntu_docker_test.sh
587 - ../scripts/setup_vpp_ext_deps.sh
590 - ../scripts/vpp/debug-build.sh
594 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
596 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
598 name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
600 project-type: freestyle
601 node: 'builder-{os}-prod-{executor-arch}'
605 - lf-infra-properties:
606 build-days-to-keep: "{build-days-to-keep}"
608 # Please keep parameters in alphabetical order
612 - make-parallel-jobs-parameter:
613 make-parallel-jobs: '{make-parallel-jobs}'
614 - make-test-os-parameter:
615 make-test-os: '{make-test-os}'
624 - gerrit-trigger-scm:
625 credentials-id: 'jenkins-gerrit-credentials'
627 choosing-strategy: 'default'
630 - fdio-infra-wrappers:
631 build-timeout: '{build-timeout}'
634 - timed: '{periodicity}'
635 - gerrit-trigger-manually-triggered:
636 comment-trigger-value: '{comment-trigger-value}'
643 - ../scripts/setup_executor_env.sh
646 - ../scripts/setup_vpp_ubuntu_docker_test.sh
649 - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
652 - vpp-dpdk-rdma-version-mismatch:
655 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
657 # VPP-MERGE JOB TEMPLATE
659 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
661 project-type: freestyle
662 node: 'builder-{os}-prod-{executor-arch}'
665 - lf-infra-properties:
666 build-days-to-keep: "{build-days-to-keep}"
668 # Please keep parameters in alphabetical order
672 - make-parallel-jobs-parameter:
673 make-parallel-jobs: '{make-parallel-jobs}'
674 - make-test-os-parameter:
675 make-test-os: '{make-test-os}'
676 - make-test-multiworker-os-parameter:
677 make-test-multiworker-os: '{make-test-multiworker-os}'
686 - gerrit-trigger-scm:
687 credentials-id: 'jenkins-gerrit-credentials'
689 choosing-strategy: 'default'
692 - fdio-infra-wrappers:
696 - gerrit-trigger-patch-merged:
701 - config-file-provider:
703 - file-id: '.packagecloud'
704 target: '/root/.packagecloud'
705 - config-file-provider:
707 - file-id: 'packagecloud_api'
708 target: '/root/packagecloud_api'
711 - ../scripts/setup_executor_env.sh
714 - ../scripts/setup_vpp_ubuntu_docker_test.sh
717 - ../scripts/setup_vpp_ext_deps.sh
720 - ../scripts/vpp/build.sh
723 - ../scripts/packagecloud_push.sh
727 # [end] VPP-MERGE JOB TEMPLATE
729 # VPP-GCC-VERIFY JOB TEMPLATE
731 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
733 project-type: freestyle
734 node: 'builder-{os}-prod-{executor-arch}'
738 - lf-infra-properties:
739 build-days-to-keep: "{build-days-to-keep}"
741 # Please keep parameters in alphabetical order
745 - gerrit-refspec-parameter:
746 refspec: '{branch-refspec}'
747 - make-parallel-jobs-parameter:
748 make-parallel-jobs: '{make-parallel-jobs}'
757 - gerrit-trigger-scm:
758 credentials-id: 'jenkins-gerrit-credentials'
759 refspec: '$GERRIT_REFSPEC'
760 choosing-strategy: 'gerrit'
763 - fdio-infra-wrappers:
767 - gerrit-trigger-checkstyle:
774 - ../scripts/setup_executor_env.sh
777 - ../scripts/setup_vpp_ubuntu_docker_test.sh
780 - ../scripts/setup_vpp_ext_deps.sh
783 - ../scripts/vpp/gcc-build.sh
787 # [end] VPP-GCC-VERIFY JOB TEMPLATE
789 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
791 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
796 <li>csit-builder-{os}-prod-{executor-arch}
798 <li>testbed architecture
804 project-type: freestyle
805 node: 'csit-builder-{os}-prod-{executor-arch}'
810 - lf-infra-properties:
811 build-days-to-keep: "{build-days-to-keep}"
813 # Please keep parameters in alphabetical order
815 - gerrit-csit-refspec-parameter
816 - gerrit-event-comment-text-parameter
817 - gerrit-event-type-parameter
820 - gerrit-refspec-parameter:
821 refspec: '{branch-refspec}'
822 - make-parallel-jobs-parameter:
823 make-parallel-jobs: '{make-parallel-jobs}'
832 - gerrit-trigger-scm:
833 credentials-id: 'jenkins-gerrit-credentials'
834 refspec: '$GERRIT_REFSPEC'
835 choosing-strategy: 'gerrit'
838 - fdio-infra-wrappers:
842 - 'gerrit-trigger-vpp-csit-devicetest-full':
845 skip-vote: '{skip-vote}'
850 - ../scripts/setup_executor_env.sh
853 - ../scripts/setup_vpp_ubuntu_docker_test.sh
856 - ../scripts/setup_vpp_ext_deps.sh
859 - ../scripts/vpp/csit-device.sh
863 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
865 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
867 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
872 <li>builder-{os}-prod-{executor-arch}
874 <li>testbed architecture
879 Contrary to csit-vpp job, this also measures the parent performance,
880 and fails if performance regression is detected.
881 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
884 project-type: freestyle
885 node: 'builder-{os}-prod-{executor-arch}'
890 - lf-infra-properties:
891 build-days-to-keep: "{build-days-to-keep}"
893 # Please keep parameters in alphabetical order
895 - csit-perf-trial-duration-parameter:
896 csit-perf-trial-duration: "10.0"
897 - csit-perf-trial-multiplicity-parameter:
898 csit-perf-trial-multiplicity: "5"
899 - gerrit-csit-refspec-parameter
900 - gerrit-event-comment-text-parameter
901 - gerrit-event-type-parameter
902 - gerrit-refspec-parameter:
903 refspec: '{branch-refspec}'
906 - make-parallel-jobs-parameter:
907 make-parallel-jobs: '{make-parallel-jobs}'
916 - gerrit-trigger-scm:
917 credentials-id: 'jenkins-gerrit-credentials'
918 refspec: '$GERRIT_REFSPEC'
919 choosing-strategy: 'gerrit'
922 - fdio-infra-wrappers-non-activity-timeout:
926 - gerrit-trigger-csit-perftest:
929 trigger-word: 'perftest-{testbed-arch}'
935 - ../scripts/setup_executor_env.sh
938 - ../scripts/setup_vpp_ubuntu_docker_test.sh
941 - ../scripts/setup_vpp_ext_deps.sh
944 - ../scripts/vpp/csit-perf.sh
948 # Can be removed when all CSIT branches use correct archive directory.
959 - ../scripts/vpp/copy_archives.sh
961 output-path: 'archives/csit_current/0/'
964 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
966 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
968 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
970 project-type: freestyle
971 node: 'builder-{os}-prod-{executor-arch}'
976 - lf-infra-properties:
977 build-days-to-keep: "{build-days-to-keep}"
979 # Please keep parameters in alphabetical order
981 # Not sure whether not failing has any useful usage,
982 # but it does not hurt to have some flexibility for future.
983 - csit-fail-on-crc-mismatch-parameter:
984 fail-on-crc-mismatch: 'True'
985 - gerrit-csit-refspec-parameter
988 - gerrit-refspec-parameter:
989 refspec: '{branch-refspec}'
996 - gerrit-trigger-scm:
997 credentials-id: 'jenkins-gerrit-credentials'
998 refspec: '$GERRIT_REFSPEC'
999 choosing-strategy: 'gerrit'
1002 - fdio-infra-wrappers-non-activity-timeout:
1006 - gerrit-trigger-checkstyle:
1012 !include-raw-escape:
1013 - ../scripts/setup_executor_env.sh
1015 !include-raw-escape:
1016 - ../scripts/setup_vpp_ubuntu_docker_test.sh
1018 !include-raw-escape:
1019 - ../scripts/vpp/check_crc.sh
1020 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1023 - fdio-infra-publish
1024 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1025 # [end] JOB TEMPLATE DEFINITIONS