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}'
47 executor-arch: 'x86_64'
48 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
52 # NOTE: The list of supported branches for each OS are maintained
53 # in .../ci-management/docker/scripts/lib_vpp.sh
54 # The job configuration must be derived from that list, thus
55 # modifications to both should be made at the same time.
56 # Since x86_64 is the primary development architecture, this
57 # project definition should be identical to the docker image
58 # build scripts. Other architectures may be a subset.
62 - 'vpp-verify-{stream}-{os}-{executor-arch}'
63 - 'vpp-merge-{stream}-{os}-{executor-arch}'
65 make-parallel-jobs: '4'
66 make-test-os: 'ubuntu-20.04'
82 executor-arch: 'x86_64'
84 # OS deprecated in master
89 # OS deprecated on 2110
92 # [end] VPP-X86_64 PROJECT
94 # VPP-DEBUG-X86_64 PROJECT
96 # Currently a periodic job due to intermittent failures.
97 # Limiting branches to master, since other branches
98 # may not get fixes for the intermittent failures.
101 name: vpp-debug-x86_64
103 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
105 make-parallel-jobs: '4'
106 make-test-os: 'ubuntu-20.04'
107 comment-trigger-value: 'debug-verify'
113 periodicity: 'H * * * *'
115 executor-arch: 'x86_64'
116 # [end] VPP-DEBUG-X86_64 PROJECT
118 # VPP-GCC-X86_64 PROJECT
122 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
124 executor-arch: 'x86_64'
131 branch: 'stable/2106'
134 branch: 'stable/2110'
136 # [end] VPP-GCC-X86_64 PROJECT
138 # VPP-AARCH64 PROJECT
140 # NOTE: The list of supported branches for each OS are maintained
141 # in .../ci-management/docker/scripts/lib_vpp.sh
142 # The job configuration must be derived from that list, thus
143 # modifications to both should be made at the same time.
144 # The AARCH64 architecture is in the process of catching up
145 # with X86_64 in terms of OS coverage. Thus the jobs are
146 # a subset of those defined in the docker image build script.
150 - 'vpp-verify-{stream}-{os}-{executor-arch}'
151 - 'vpp-merge-{stream}-{os}-{executor-arch}'
153 make-parallel-jobs: '16'
154 make-test-os: 'ubuntu-20.04'
160 branch: 'stable/2106'
163 branch: 'stable/2110'
169 executor-arch: 'aarch64'
171 # OS deprecated in master
176 # OS deprecated in 2110
179 # [end] VPP-AARCH64 PROJECT
181 # VPP-CSIT-VERIFY-DEVICE PROJECT
183 name: vpp-csit-verify-device
185 - 'vpp-csit-verify-device-perpatch':
186 make-parallel-jobs: '32'
188 - testbed-arch: '1n-tx2'
189 - 'vpp-csit-verify-device-periodic':
190 make-parallel-jobs: '32'
191 periodicity: 'H * * * *'
193 comment-trigger-value: 'devicetest-periodic'
197 - testbed-arch: '1n-skx'
205 branch: 'stable/2106'
208 branch: 'stable/2110'
213 executor-arch: 'x86_64'
216 executor-arch: 'aarch64'
218 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
220 # VPP-CSIT-VERIFY-PERF PROJECT
222 name: vpp-csit-verify-perf
224 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
232 branch: 'stable/2106'
235 branch: 'stable/2110'
240 executor-arch: 'x86_64'
243 executor-arch: 'x86_64'
246 executor-arch: 'x86_64'
249 executor-arch: 'x86_64'
252 executor-arch: 'x86_64'
255 executor-arch: 'x86_64'
258 executor-arch: 'aarch64'
259 make-parallel-jobs: '16'
262 executor-arch: 'aarch64'
263 make-parallel-jobs: '16'
265 # [end] VPP-CSIT-VERIFY-PERF PROJECT
267 # VPP-CSIT-API-CRC PROJECT
269 # Only master and LTS branches are supported.
272 name: vpp-csit-api-crc
274 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
276 executor-arch: 'x86_64'
283 branch: 'stable/2106'
286 branch: 'stable/2110'
289 # [end] VPP-CSIT-API-CRC PROJECT
291 # LF RELENG VPP PROJECTS
296 - gerrit-info-yaml-verify
297 build-node: centos7-builder-2c-2g
306 # [end] LF RELENG VPP PROJECTS
307 # [end] PROJECT DEFINITIONS
309 # JOB TEMPLATE DEFINITIONS
311 # Please keep job templates in the same order as they are referenced
312 # in the project definitions above.
314 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
316 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
318 project-type: freestyle
319 node: 'builder-{os}-prod-{executor-arch}'
323 - lf-infra-properties:
324 build-days-to-keep: "{build-days-to-keep}"
326 # Please keep parameters in alphabetical order
330 - gerrit-refspec-parameter:
331 refspec: '{branch-refspec}'
338 - gerrit-trigger-scm:
339 credentials-id: 'jenkins-gerrit-credentials'
340 refspec: '$GERRIT_REFSPEC'
341 choosing-strategy: 'gerrit'
344 - fdio-infra-wrappers:
345 build-timeout: '{build-timeout}'
346 - credentials-binding:
348 credential-id: VppApiCompatNotify
349 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
353 server-name: 'Primary'
355 - patchset-created-event:
356 exclude-drafts: 'true'
357 exclude-trivial-rebase: 'false'
358 exclude-no-code-change: 'false'
359 - draft-published-event
360 - comment-added-contains-event:
361 comment-contains-value: 'checkstylecheck'
362 - comment-added-contains-event:
363 comment-contains-value: 'docsonly'
364 - comment-added-contains-event:
365 comment-contains-value: 'recheck'
366 - comment-added-contains-event:
367 comment-contains-value: 'reverify'
368 # Following two are to cover missing functions of drafts
369 # going to review status
370 - comment-added-contains-event:
371 comment-contains-value: 'runtest'
372 - comment-added-contains-event:
373 comment-contains-value: 'This change is ready for review'
375 - project-compare-type: 'ANT'
376 project-pattern: '{project}'
378 - branch-compare-type: 'ANT'
379 branch-pattern: '**/{branch}'
381 - compare-type: REG_EXP
382 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
383 forbidden-file-paths:
384 - compare-type: REG_EXP
386 - compare-type: REG_EXP
387 pattern: .*extras\/emacs\/.*
388 disable-strict-forbidden-file-verification: 'true'
390 gerrit-build-notbuilt-verified-value: 0
391 gerrit-build-successful-verified-value: 1
392 # yamllint disable-line rule:line-length
393 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
394 # yamllint disable-line rule:line-length
395 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
396 successful-message: 'checkstyle_success'
406 - ../scripts/setup_executor_env.sh
409 - ../scripts/vpp/checkstyle.sh
412 - ../scripts/vpp/test-checkstyle.sh
415 - ../scripts/vpp/api-checkstyle.sh
418 - ../scripts/vpp/commitmsg.sh
423 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
425 # VPP-VERIFY JOB TEMPLATE
427 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
429 project-type: freestyle
430 node: 'builder-{os}-prod-{executor-arch}'
434 - lf-infra-properties:
435 build-days-to-keep: "{build-days-to-keep}"
437 # Please keep parameters in alphabetical order
441 - gerrit-refspec-parameter:
442 refspec: '{branch-refspec}'
443 - make-parallel-jobs-parameter:
444 make-parallel-jobs: '{make-parallel-jobs}'
445 - make-test-os-parameter:
446 make-test-os: '{make-test-os}'
455 - gerrit-trigger-scm:
456 credentials-id: 'jenkins-gerrit-credentials'
457 refspec: '$GERRIT_REFSPEC'
458 choosing-strategy: 'gerrit'
461 - fdio-infra-wrappers:
465 - gerrit-trigger-checkstyle:
472 - ../scripts/setup_executor_env.sh
475 - ../scripts/setup_vpp_ubuntu_docker_test.sh
478 - ../scripts/setup_vpp_dpdk_dev_env.sh
481 - ../scripts/vpp/build.sh
485 # [end] VPP-VERIFY JOB TEMPLATE
487 # VPP-DEBUG-VERIFY JOB TEMPLATE
489 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
491 project-type: freestyle
492 node: 'builder-{os}-prod-{executor-arch}'
496 - lf-infra-properties:
497 build-days-to-keep: "{build-days-to-keep}"
499 # Please keep parameters in alphabetical order
503 - gerrit-refspec-parameter:
504 refspec: '{branch-refspec}'
505 - make-parallel-jobs-parameter:
506 make-parallel-jobs: '{make-parallel-jobs}'
507 - make-test-os-parameter:
508 make-test-os: '{make-test-os}'
517 - gerrit-trigger-scm:
518 credentials-id: 'jenkins-gerrit-credentials'
519 refspec: '$GERRIT_REFSPEC'
520 choosing-strategy: 'gerrit'
523 - fdio-infra-wrappers:
524 build-timeout: '{build-timeout}'
527 - timed: '{periodicity}'
528 - gerrit-trigger-manually-triggered:
529 comment-trigger-value: '{comment-trigger-value}'
536 - ../scripts/setup_executor_env.sh
539 - ../scripts/setup_vpp_ubuntu_docker_test.sh
542 - ../scripts/setup_vpp_dpdk_dev_env.sh
545 - ../scripts/vpp/debug-build.sh
549 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
551 # VPP-MERGE JOB TEMPLATE
553 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
555 project-type: freestyle
556 node: 'builder-{os}-prod-{executor-arch}'
559 - lf-infra-properties:
560 build-days-to-keep: "{build-days-to-keep}"
562 # Please keep parameters in alphabetical order
566 - make-parallel-jobs-parameter:
567 make-parallel-jobs: '{make-parallel-jobs}'
568 - make-test-os-parameter:
569 make-test-os: '{make-test-os}'
578 - gerrit-trigger-scm:
579 credentials-id: 'jenkins-gerrit-credentials'
581 choosing-strategy: 'default'
584 - fdio-infra-wrappers:
588 - gerrit-trigger-patch-merged:
593 - config-file-provider:
595 - file-id: '.packagecloud'
596 target: '/root/.packagecloud'
597 - config-file-provider:
599 - file-id: 'packagecloud_api'
600 target: '/root/packagecloud_api'
603 - ../scripts/setup_executor_env.sh
606 - ../scripts/setup_vpp_ubuntu_docker_test.sh
609 - ../scripts/setup_vpp_dpdk_dev_env.sh
612 - ../scripts/vpp/build.sh
615 - ../scripts/packagecloud_push.sh
619 # [end] VPP-MERGE JOB TEMPLATE
621 # VPP-GCC-VERIFY JOB TEMPLATE
623 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
625 project-type: freestyle
626 node: 'builder-{os}-prod-{executor-arch}'
630 - lf-infra-properties:
631 build-days-to-keep: "{build-days-to-keep}"
633 # Please keep parameters in alphabetical order
637 - gerrit-refspec-parameter:
638 refspec: '{branch-refspec}'
639 - make-parallel-jobs-parameter:
640 make-parallel-jobs: '{make-parallel-jobs}'
649 - gerrit-trigger-scm:
650 credentials-id: 'jenkins-gerrit-credentials'
651 refspec: '$GERRIT_REFSPEC'
652 choosing-strategy: 'gerrit'
655 - fdio-infra-wrappers:
659 - gerrit-trigger-checkstyle:
666 - ../scripts/setup_executor_env.sh
669 - ../scripts/setup_vpp_ubuntu_docker_test.sh
672 - ../scripts/setup_vpp_dpdk_dev_env.sh
675 - ../scripts/vpp/gcc-build.sh
679 # [end] VPP-GCC-VERIFY JOB TEMPLATE
681 # VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
683 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
684 id: 'vpp-csit-verify-device-periodic'
689 <li>csit-builder-{os}-prod-{executor-arch}
691 <li>testbed architecture
697 project-type: freestyle
698 node: 'csit-builder-{os}-prod-{executor-arch}'
703 - lf-infra-properties:
704 build-days-to-keep: "{build-days-to-keep}"
706 # Please keep parameters in alphabetical order
708 - gerrit-csit-refspec-parameter
709 - gerrit-event-comment-text-parameter
710 - gerrit-event-type-parameter
713 - gerrit-refspec-parameter:
714 refspec: '{branch-refspec}'
715 - make-parallel-jobs-parameter:
716 make-parallel-jobs: '{make-parallel-jobs}'
725 - gerrit-trigger-scm:
726 credentials-id: 'jenkins-gerrit-credentials'
727 refspec: '$GERRIT_REFSPEC'
728 choosing-strategy: 'default'
731 - fdio-infra-wrappers:
735 - timed: '{periodicity}'
736 - gerrit-trigger-manually-triggered:
737 comment-trigger-value: '{comment-trigger-value}'
744 - ../scripts/setup_executor_env.sh
747 - ../scripts/setup_vpp_ubuntu_docker_test.sh
750 - ../scripts/setup_vpp_dpdk_dev_env.sh
753 - ../scripts/vpp/csit-device.sh
757 # [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
759 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
761 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
762 id: 'vpp-csit-verify-device-perpatch'
767 <li>csit-builder-{os}-prod-{executor-arch}
769 <li>testbed architecture
775 project-type: freestyle
776 node: 'csit-builder-{os}-prod-{executor-arch}'
781 - lf-infra-properties:
782 build-days-to-keep: "{build-days-to-keep}"
784 # Please keep parameters in alphabetical order
786 - gerrit-csit-refspec-parameter
787 - gerrit-event-comment-text-parameter
788 - gerrit-event-type-parameter
791 - gerrit-refspec-parameter:
792 refspec: '{branch-refspec}'
793 - make-parallel-jobs-parameter:
794 make-parallel-jobs: '{make-parallel-jobs}'
803 - gerrit-trigger-scm:
804 credentials-id: 'jenkins-gerrit-credentials'
805 refspec: '$GERRIT_REFSPEC'
806 choosing-strategy: 'gerrit'
809 - fdio-infra-wrappers:
813 - 'gerrit-trigger-vpp-csit-devicetest-full':
816 skip-vote: '{skip-vote}'
821 - ../scripts/setup_executor_env.sh
824 - ../scripts/setup_vpp_ubuntu_docker_test.sh
827 - ../scripts/setup_vpp_dpdk_dev_env.sh
830 - ../scripts/vpp/csit-device.sh
834 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
836 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
838 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
843 <li>builder-{os}-prod-{executor-arch}
845 <li>testbed architecture
850 Contrary to csit-vpp job, this also measures the parent performance,
851 and fails if performance regression is detected.
852 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
855 project-type: freestyle
856 node: 'builder-{os}-prod-{executor-arch}'
861 - lf-infra-properties:
862 build-days-to-keep: "{build-days-to-keep}"
864 # Please keep parameters in alphabetical order
866 - csit-perf-trial-duration-parameter:
867 csit-perf-trial-duration: "10.0"
868 - csit-perf-trial-multiplicity-parameter:
869 csit-perf-trial-multiplicity: "5"
870 - gerrit-csit-refspec-parameter
871 - gerrit-event-comment-text-parameter
872 - gerrit-event-type-parameter
873 - gerrit-refspec-parameter:
874 refspec: '{branch-refspec}'
877 - make-parallel-jobs-parameter:
878 make-parallel-jobs: '{make-parallel-jobs}'
887 - gerrit-trigger-scm:
888 credentials-id: 'jenkins-gerrit-credentials'
889 refspec: '$GERRIT_REFSPEC'
890 choosing-strategy: 'gerrit'
893 - fdio-infra-wrappers-non-activity-timeout:
897 - gerrit-trigger-csit-perftest:
900 trigger-word: 'perftest-{testbed-arch}'
906 - ../scripts/setup_executor_env.sh
909 - ../scripts/setup_vpp_ubuntu_docker_test.sh
912 - ../scripts/setup_vpp_dpdk_dev_env.sh
915 - ../scripts/vpp/csit-perf.sh
919 # Can be removed when all CSIT branches use correct archive directory.
930 - ../scripts/vpp/copy_archives.sh
932 output-path: 'archives/csit_current/0/'
935 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
937 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
939 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
941 project-type: freestyle
942 node: 'builder-{os}-prod-{executor-arch}'
947 - lf-infra-properties:
948 build-days-to-keep: "{build-days-to-keep}"
950 # Please keep parameters in alphabetical order
952 # Not sure whether not failing has any useful usage,
953 # but it does not hurt to have some flexibility for future.
954 - csit-fail-on-crc-mismatch-parameter:
955 fail-on-crc-mismatch: 'True'
956 - gerrit-csit-refspec-parameter
959 - gerrit-refspec-parameter:
960 refspec: '{branch-refspec}'
967 - gerrit-trigger-scm:
968 credentials-id: 'jenkins-gerrit-credentials'
969 refspec: '$GERRIT_REFSPEC'
970 choosing-strategy: 'gerrit'
973 - fdio-infra-wrappers-non-activity-timeout:
977 - gerrit-trigger-checkstyle:
984 - ../scripts/setup_executor_env.sh
987 - ../scripts/setup_vpp_ubuntu_docker_test.sh
990 - ../scripts/vpp/check_crc.sh
991 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
995 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
996 # [end] JOB TEMPLATE DEFINITIONS