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 master (22.10)
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'
78 make-test-os: 'ubuntu-20.04'
94 executor-arch: 'x86_64'
105 # [end] VPP-X86_64 PROJECT
107 # VPP-DEBUG-X86_64 PROJECT
109 # Currently a periodic job due to intermittent failures.
110 # Limiting branches to master, since other branches
111 # may not get fixes for the intermittent failures.
114 name: vpp-debug-x86_64
116 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
118 make-parallel-jobs: '4'
119 make-test-os: 'ubuntu-20.04'
120 comment-trigger-value: 'debug-verify'
126 periodicity: 'H * * * *'
128 executor-arch: 'x86_64'
130 # [end] VPP-DEBUG-X86_64 PROJECT
132 # VPP-GCC-X86_64 PROJECT
136 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
141 executor-arch: 'x86_64'
147 branch: 'stable/2202'
150 branch: 'stable/2206'
153 # os deprecated in master (22.10)
162 # [end] VPP-GCC-X86_64 PROJECT
164 # VPP-AARCH64 PROJECT
166 # NOTE: The list of supported branches for each OS are maintained
167 # in .../ci-management/docker/scripts/lib_vpp.sh
168 # The job configuration must be derived from that list, thus
169 # modifications to both should be made at the same time.
170 # The AARCH64 architecture is in the process of catching up
171 # with X86_64 in terms of OS coverage. Thus the jobs are
172 # a subset of those defined in the docker image build script.
176 - 'vpp-verify-{stream}-{os}-{executor-arch}'
177 - 'vpp-merge-{stream}-{os}-{executor-arch}'
179 make-parallel-jobs: '16'
180 make-test-os: 'ubuntu-20.04'
186 branch: 'stable/2202'
189 branch: 'stable/2206'
194 executor-arch: 'aarch64'
202 # [end] VPP-AARCH64 PROJECT
204 # VPP-CSIT-VERIFY-DEVICE PROJECT
206 name: vpp-csit-verify-device
208 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
209 make-parallel-jobs: '32'
219 executor-arch: 'x86_64'
222 executor-arch: 'aarch64'
224 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
226 # VPP-CSIT-VERIFY-PERF PROJECT
228 name: vpp-csit-verify-perf
230 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
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'
266 executor-arch: 'aarch64'
267 make-parallel-jobs: '16'
270 executor-arch: 'x86_64'
271 # [end] VPP-CSIT-VERIFY-PERF PROJECT
273 # VPP-CSIT-API-CRC PROJECT
275 # Only master and LTS branches are supported.
278 name: vpp-csit-api-crc
280 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
282 executor-arch: 'x86_64'
289 branch: 'stable/2202'
292 branch: 'stable/2206'
298 # os deprecated in master (22.10)
307 # [end] VPP-CSIT-API-CRC PROJECT
309 # LF RELENG VPP PROJECTS
314 - gerrit-info-yaml-verify
315 build-node: centos7-builder-2c-2g
324 # [end] LF RELENG VPP PROJECTS
325 # [end] PROJECT DEFINITIONS
327 # JOB TEMPLATE DEFINITIONS
329 # Please keep job templates in the same order as they are referenced
330 # in the project definitions above.
332 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
334 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
336 project-type: freestyle
337 node: 'builder-{os}-prod-{executor-arch}'
341 - lf-infra-properties:
342 build-days-to-keep: "{build-days-to-keep}"
344 # Please keep parameters in alphabetical order
348 - gerrit-refspec-parameter:
349 refspec: '{branch-refspec}'
356 - gerrit-trigger-scm:
357 credentials-id: 'jenkins-gerrit-credentials'
358 refspec: '$GERRIT_REFSPEC'
359 choosing-strategy: 'gerrit'
362 - fdio-infra-wrappers:
363 build-timeout: '{build-timeout}'
364 - credentials-binding:
366 credential-id: VppApiCompatNotify
367 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
371 server-name: 'Primary'
373 - patchset-created-event:
374 exclude-drafts: 'true'
375 exclude-trivial-rebase: 'false'
376 exclude-no-code-change: 'false'
377 - draft-published-event
378 - comment-added-contains-event:
379 comment-contains-value: 'checkstylecheck'
380 - comment-added-contains-event:
381 comment-contains-value: 'docsonly'
382 - comment-added-contains-event:
383 comment-contains-value: 'recheck'
384 - comment-added-contains-event:
385 comment-contains-value: 'reverify'
386 # Following two are to cover missing functions of drafts
387 # going to review status
388 - comment-added-contains-event:
389 comment-contains-value: 'runtest'
390 - comment-added-contains-event:
391 comment-contains-value: 'This change is ready for review'
393 - project-compare-type: 'ANT'
394 project-pattern: '{project}'
396 - branch-compare-type: 'ANT'
397 branch-pattern: '**/{branch}'
399 - compare-type: REG_EXP
400 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
401 forbidden-file-paths:
402 - compare-type: REG_EXP
403 pattern: .*extras\/emacs\/.*
404 disable-strict-forbidden-file-verification: 'true'
406 gerrit-build-notbuilt-verified-value: 0
407 gerrit-build-successful-verified-value: 1
408 # yamllint disable-line rule:line-length
409 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
410 # yamllint disable-line rule:line-length
411 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
412 successful-message: 'checkstyle_success'
422 - ../scripts/setup_executor_env.sh
425 - ../scripts/vpp/checkstyle.sh
428 - ../scripts/vpp/test-checkstyle.sh
431 - ../scripts/vpp/api-checkstyle.sh
434 - ../scripts/vpp/commitmsg.sh
437 - ../scripts/vpp/docs_spell.sh
442 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
444 # VPP-VERIFY JOB TEMPLATE
446 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
448 project-type: freestyle
449 node: 'builder-{os}-prod-{executor-arch}'
453 - lf-infra-properties:
454 build-days-to-keep: "{build-days-to-keep}"
456 # Please keep parameters in alphabetical order
460 - gerrit-refspec-parameter:
461 refspec: '{branch-refspec}'
462 - make-parallel-jobs-parameter:
463 make-parallel-jobs: '{make-parallel-jobs}'
464 - make-test-os-parameter:
465 make-test-os: '{make-test-os}'
474 - gerrit-trigger-scm:
475 credentials-id: 'jenkins-gerrit-credentials'
476 refspec: '$GERRIT_REFSPEC'
477 choosing-strategy: 'gerrit'
480 - fdio-infra-wrappers:
484 - gerrit-trigger-checkstyle:
491 - ../scripts/setup_executor_env.sh
494 - ../scripts/setup_vpp_ubuntu_docker_test.sh
497 - ../scripts/setup_vpp_ext_deps.sh
500 - ../scripts/vpp/build.sh
504 # [end] VPP-VERIFY JOB TEMPLATE
506 # VPP-DEBUG-VERIFY JOB TEMPLATE
508 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
510 project-type: freestyle
511 node: 'builder-{os}-prod-{executor-arch}'
515 - lf-infra-properties:
516 build-days-to-keep: "{build-days-to-keep}"
518 # Please keep parameters in alphabetical order
522 - gerrit-refspec-parameter:
523 refspec: '{branch-refspec}'
524 - make-parallel-jobs-parameter:
525 make-parallel-jobs: '{make-parallel-jobs}'
526 - make-test-os-parameter:
527 make-test-os: '{make-test-os}'
536 - gerrit-trigger-scm:
537 credentials-id: 'jenkins-gerrit-credentials'
538 refspec: '$GERRIT_REFSPEC'
539 choosing-strategy: 'gerrit'
542 - fdio-infra-wrappers:
543 build-timeout: '{build-timeout}'
546 - timed: '{periodicity}'
547 - gerrit-trigger-manually-triggered:
548 comment-trigger-value: '{comment-trigger-value}'
555 - ../scripts/setup_executor_env.sh
558 - ../scripts/setup_vpp_ubuntu_docker_test.sh
561 - ../scripts/setup_vpp_ext_deps.sh
564 - ../scripts/vpp/debug-build.sh
568 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
570 # VPP-MERGE JOB TEMPLATE
572 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
574 project-type: freestyle
575 node: 'builder-{os}-prod-{executor-arch}'
578 - lf-infra-properties:
579 build-days-to-keep: "{build-days-to-keep}"
581 # Please keep parameters in alphabetical order
585 - make-parallel-jobs-parameter:
586 make-parallel-jobs: '{make-parallel-jobs}'
587 - make-test-os-parameter:
588 make-test-os: '{make-test-os}'
597 - gerrit-trigger-scm:
598 credentials-id: 'jenkins-gerrit-credentials'
600 choosing-strategy: 'default'
603 - fdio-infra-wrappers:
607 - gerrit-trigger-patch-merged:
612 - config-file-provider:
614 - file-id: '.packagecloud'
615 target: '/root/.packagecloud'
616 - config-file-provider:
618 - file-id: 'packagecloud_api'
619 target: '/root/packagecloud_api'
622 - ../scripts/setup_executor_env.sh
625 - ../scripts/setup_vpp_ubuntu_docker_test.sh
628 - ../scripts/setup_vpp_ext_deps.sh
631 - ../scripts/vpp/build.sh
634 - ../scripts/packagecloud_push.sh
638 # [end] VPP-MERGE JOB TEMPLATE
640 # VPP-GCC-VERIFY JOB TEMPLATE
642 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
644 project-type: freestyle
645 node: 'builder-{os}-prod-{executor-arch}'
649 - lf-infra-properties:
650 build-days-to-keep: "{build-days-to-keep}"
652 # Please keep parameters in alphabetical order
656 - gerrit-refspec-parameter:
657 refspec: '{branch-refspec}'
658 - make-parallel-jobs-parameter:
659 make-parallel-jobs: '{make-parallel-jobs}'
668 - gerrit-trigger-scm:
669 credentials-id: 'jenkins-gerrit-credentials'
670 refspec: '$GERRIT_REFSPEC'
671 choosing-strategy: 'gerrit'
674 - fdio-infra-wrappers:
678 - gerrit-trigger-checkstyle:
685 - ../scripts/setup_executor_env.sh
688 - ../scripts/setup_vpp_ubuntu_docker_test.sh
691 - ../scripts/setup_vpp_ext_deps.sh
694 - ../scripts/vpp/gcc-build.sh
698 # [end] VPP-GCC-VERIFY JOB TEMPLATE
700 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
702 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
707 <li>csit-builder-{os}-prod-{executor-arch}
709 <li>testbed architecture
715 project-type: freestyle
716 node: 'csit-builder-{os}-prod-{executor-arch}'
721 - lf-infra-properties:
722 build-days-to-keep: "{build-days-to-keep}"
724 # Please keep parameters in alphabetical order
726 - gerrit-csit-refspec-parameter
727 - gerrit-event-comment-text-parameter
728 - gerrit-event-type-parameter
731 - gerrit-refspec-parameter:
732 refspec: '{branch-refspec}'
733 - make-parallel-jobs-parameter:
734 make-parallel-jobs: '{make-parallel-jobs}'
743 - gerrit-trigger-scm:
744 credentials-id: 'jenkins-gerrit-credentials'
745 refspec: '$GERRIT_REFSPEC'
746 choosing-strategy: 'gerrit'
749 - fdio-infra-wrappers:
753 - 'gerrit-trigger-vpp-csit-devicetest-full':
756 skip-vote: '{skip-vote}'
761 - ../scripts/setup_executor_env.sh
764 - ../scripts/setup_vpp_ubuntu_docker_test.sh
767 - ../scripts/setup_vpp_ext_deps.sh
770 - ../scripts/vpp/csit-device.sh
774 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
776 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
778 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
783 <li>builder-{os}-prod-{executor-arch}
785 <li>testbed architecture
790 Contrary to csit-vpp job, this also measures the parent performance,
791 and fails if performance regression is detected.
792 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
795 project-type: freestyle
796 node: 'builder-{os}-prod-{executor-arch}'
801 - lf-infra-properties:
802 build-days-to-keep: "{build-days-to-keep}"
804 # Please keep parameters in alphabetical order
806 - csit-perf-trial-duration-parameter:
807 csit-perf-trial-duration: "10.0"
808 - csit-perf-trial-multiplicity-parameter:
809 csit-perf-trial-multiplicity: "5"
810 - gerrit-csit-refspec-parameter
811 - gerrit-event-comment-text-parameter
812 - gerrit-event-type-parameter
813 - gerrit-refspec-parameter:
814 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-non-activity-timeout:
837 - gerrit-trigger-csit-perftest:
840 trigger-word: 'perftest-{testbed-arch}'
846 - ../scripts/setup_executor_env.sh
849 - ../scripts/setup_vpp_ubuntu_docker_test.sh
852 - ../scripts/setup_vpp_ext_deps.sh
855 - ../scripts/vpp/csit-perf.sh
859 # Can be removed when all CSIT branches use correct archive directory.
870 - ../scripts/vpp/copy_archives.sh
872 output-path: 'archives/csit_current/0/'
875 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
877 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
879 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
881 project-type: freestyle
882 node: 'builder-{os}-prod-{executor-arch}'
887 - lf-infra-properties:
888 build-days-to-keep: "{build-days-to-keep}"
890 # Please keep parameters in alphabetical order
892 # Not sure whether not failing has any useful usage,
893 # but it does not hurt to have some flexibility for future.
894 - csit-fail-on-crc-mismatch-parameter:
895 fail-on-crc-mismatch: 'True'
896 - gerrit-csit-refspec-parameter
899 - gerrit-refspec-parameter:
900 refspec: '{branch-refspec}'
907 - gerrit-trigger-scm:
908 credentials-id: 'jenkins-gerrit-credentials'
909 refspec: '$GERRIT_REFSPEC'
910 choosing-strategy: 'gerrit'
913 - fdio-infra-wrappers-non-activity-timeout:
917 - gerrit-trigger-checkstyle:
924 - ../scripts/setup_executor_env.sh
927 - ../scripts/setup_vpp_ubuntu_docker_test.sh
930 - ../scripts/vpp/check_crc.sh
931 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
935 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
936 # [end] JOB TEMPLATE DEFINITIONS