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}'
50 executor-arch: 'x86_64'
51 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
55 # NOTE: The list of supported branches for each OS are maintained
56 # in .../ci-management/docker/scripts/lib_vpp.sh
57 # The job configuration must be derived from that list, thus
58 # modifications to both should be made at the same time.
59 # Since x86_64 is the primary development architecture, this
60 # project definition should be identical to the docker image
61 # build scripts. Other architectures may be a subset.
65 - 'vpp-verify-{stream}-{os}-{executor-arch}'
66 - 'vpp-merge-{stream}-{os}-{executor-arch}'
68 make-parallel-jobs: '4'
69 make-test-os: 'ubuntu-20.04'
88 executor-arch: 'x86_64'
90 # OS deprecated in master
95 # OS deprecated on 2110
98 # OS deprecated on 2202
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-20.04'
118 comment-trigger-value: 'debug-verify'
124 periodicity: 'H * * * *'
126 executor-arch: 'x86_64'
127 # [end] VPP-DEBUG-X86_64 PROJECT
129 # VPP-GCC-X86_64 PROJECT
133 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
135 executor-arch: 'x86_64'
142 branch: 'stable/2106'
145 branch: 'stable/2110'
148 branch: 'stable/2202'
150 # [end] VPP-GCC-X86_64 PROJECT
152 # VPP-AARCH64 PROJECT
154 # NOTE: The list of supported branches for each OS are maintained
155 # in .../ci-management/docker/scripts/lib_vpp.sh
156 # The job configuration must be derived from that list, thus
157 # modifications to both should be made at the same time.
158 # The AARCH64 architecture is in the process of catching up
159 # with X86_64 in terms of OS coverage. Thus the jobs are
160 # a subset of those defined in the docker image build script.
164 - 'vpp-verify-{stream}-{os}-{executor-arch}'
165 - 'vpp-merge-{stream}-{os}-{executor-arch}'
167 make-parallel-jobs: '16'
168 make-test-os: 'ubuntu-20.04'
174 branch: 'stable/2106'
177 branch: 'stable/2110'
180 branch: 'stable/2202'
186 executor-arch: 'aarch64'
188 # OS deprecated in master
193 # OS deprecated in 2110
196 # OS deprecated in 2202
201 # [end] VPP-AARCH64 PROJECT
203 # VPP-CSIT-VERIFY-DEVICE PROJECT
205 name: vpp-csit-verify-device
207 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
208 make-parallel-jobs: '32'
216 branch: 'stable/2106'
219 branch: 'stable/2110'
222 branch: 'stable/2202'
227 executor-arch: 'x86_64'
230 executor-arch: 'aarch64'
233 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
235 # VPP-CSIT-VERIFY-PERF PROJECT
237 name: vpp-csit-verify-perf
239 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
247 branch: 'stable/2106'
250 branch: 'stable/2110'
253 branch: 'stable/2202'
258 executor-arch: 'x86_64'
261 executor-arch: 'x86_64'
264 executor-arch: 'x86_64'
267 executor-arch: 'x86_64'
270 executor-arch: 'x86_64'
273 executor-arch: 'x86_64'
276 executor-arch: 'x86_64'
279 executor-arch: 'aarch64'
280 make-parallel-jobs: '16'
283 executor-arch: 'aarch64'
284 make-parallel-jobs: '16'
286 # [end] VPP-CSIT-VERIFY-PERF PROJECT
288 # VPP-CSIT-API-CRC PROJECT
290 # Only master and LTS branches are supported.
293 name: vpp-csit-api-crc
295 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
297 executor-arch: 'x86_64'
304 branch: 'stable/2106'
307 branch: 'stable/2110'
310 branch: 'stable/2202'
313 # [end] VPP-CSIT-API-CRC PROJECT
315 # LF RELENG VPP PROJECTS
320 - gerrit-info-yaml-verify
321 build-node: centos7-builder-2c-2g
330 # [end] LF RELENG VPP PROJECTS
331 # [end] PROJECT DEFINITIONS
333 # JOB TEMPLATE DEFINITIONS
335 # Please keep job templates in the same order as they are referenced
336 # in the project definitions above.
338 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
340 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
342 project-type: freestyle
343 node: 'builder-{os}-prod-{executor-arch}'
347 - lf-infra-properties:
348 build-days-to-keep: "{build-days-to-keep}"
350 # Please keep parameters in alphabetical order
354 - gerrit-refspec-parameter:
355 refspec: '{branch-refspec}'
362 - gerrit-trigger-scm:
363 credentials-id: 'jenkins-gerrit-credentials'
364 refspec: '$GERRIT_REFSPEC'
365 choosing-strategy: 'gerrit'
368 - fdio-infra-wrappers:
369 build-timeout: '{build-timeout}'
370 - credentials-binding:
372 credential-id: VppApiCompatNotify
373 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
377 server-name: 'Primary'
379 - patchset-created-event:
380 exclude-drafts: 'true'
381 exclude-trivial-rebase: 'false'
382 exclude-no-code-change: 'false'
383 - draft-published-event
384 - comment-added-contains-event:
385 comment-contains-value: 'checkstylecheck'
386 - comment-added-contains-event:
387 comment-contains-value: 'docsonly'
388 - comment-added-contains-event:
389 comment-contains-value: 'recheck'
390 - comment-added-contains-event:
391 comment-contains-value: 'reverify'
392 # Following two are to cover missing functions of drafts
393 # going to review status
394 - comment-added-contains-event:
395 comment-contains-value: 'runtest'
396 - comment-added-contains-event:
397 comment-contains-value: 'This change is ready for review'
399 - project-compare-type: 'ANT'
400 project-pattern: '{project}'
402 - branch-compare-type: 'ANT'
403 branch-pattern: '**/{branch}'
405 - compare-type: REG_EXP
406 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
407 forbidden-file-paths:
408 - compare-type: REG_EXP
410 - compare-type: REG_EXP
411 pattern: .*extras\/emacs\/.*
412 disable-strict-forbidden-file-verification: 'true'
414 gerrit-build-notbuilt-verified-value: 0
415 gerrit-build-successful-verified-value: 1
416 # yamllint disable-line rule:line-length
417 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
418 # yamllint disable-line rule:line-length
419 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
420 successful-message: 'checkstyle_success'
430 - ../scripts/setup_executor_env.sh
433 - ../scripts/vpp/checkstyle.sh
436 - ../scripts/vpp/test-checkstyle.sh
439 - ../scripts/vpp/api-checkstyle.sh
442 - ../scripts/vpp/commitmsg.sh
447 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
449 # VPP-VERIFY JOB TEMPLATE
451 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
453 project-type: freestyle
454 node: 'builder-{os}-prod-{executor-arch}'
458 - lf-infra-properties:
459 build-days-to-keep: "{build-days-to-keep}"
461 # Please keep parameters in alphabetical order
465 - gerrit-refspec-parameter:
466 refspec: '{branch-refspec}'
467 - make-parallel-jobs-parameter:
468 make-parallel-jobs: '{make-parallel-jobs}'
469 - make-test-os-parameter:
470 make-test-os: '{make-test-os}'
479 - gerrit-trigger-scm:
480 credentials-id: 'jenkins-gerrit-credentials'
481 refspec: '$GERRIT_REFSPEC'
482 choosing-strategy: 'gerrit'
485 - fdio-infra-wrappers:
489 - gerrit-trigger-checkstyle:
496 - ../scripts/setup_executor_env.sh
499 - ../scripts/setup_vpp_ubuntu_docker_test.sh
502 - ../scripts/setup_vpp_ext_deps.sh
505 - ../scripts/vpp/build.sh
509 # [end] VPP-VERIFY JOB TEMPLATE
511 # VPP-DEBUG-VERIFY JOB TEMPLATE
513 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
515 project-type: freestyle
516 node: 'builder-{os}-prod-{executor-arch}'
520 - lf-infra-properties:
521 build-days-to-keep: "{build-days-to-keep}"
523 # Please keep parameters in alphabetical order
527 - gerrit-refspec-parameter:
528 refspec: '{branch-refspec}'
529 - make-parallel-jobs-parameter:
530 make-parallel-jobs: '{make-parallel-jobs}'
531 - make-test-os-parameter:
532 make-test-os: '{make-test-os}'
541 - gerrit-trigger-scm:
542 credentials-id: 'jenkins-gerrit-credentials'
543 refspec: '$GERRIT_REFSPEC'
544 choosing-strategy: 'gerrit'
547 - fdio-infra-wrappers:
548 build-timeout: '{build-timeout}'
551 - timed: '{periodicity}'
552 - gerrit-trigger-manually-triggered:
553 comment-trigger-value: '{comment-trigger-value}'
560 - ../scripts/setup_executor_env.sh
563 - ../scripts/setup_vpp_ubuntu_docker_test.sh
566 - ../scripts/setup_vpp_ext_deps.sh
569 - ../scripts/vpp/debug-build.sh
573 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
575 # VPP-MERGE JOB TEMPLATE
577 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
579 project-type: freestyle
580 node: 'builder-{os}-prod-{executor-arch}'
583 - lf-infra-properties:
584 build-days-to-keep: "{build-days-to-keep}"
586 # Please keep parameters in alphabetical order
590 - make-parallel-jobs-parameter:
591 make-parallel-jobs: '{make-parallel-jobs}'
592 - make-test-os-parameter:
593 make-test-os: '{make-test-os}'
602 - gerrit-trigger-scm:
603 credentials-id: 'jenkins-gerrit-credentials'
605 choosing-strategy: 'default'
608 - fdio-infra-wrappers:
612 - gerrit-trigger-patch-merged:
617 - config-file-provider:
619 - file-id: '.packagecloud'
620 target: '/root/.packagecloud'
621 - config-file-provider:
623 - file-id: 'packagecloud_api'
624 target: '/root/packagecloud_api'
627 - ../scripts/setup_executor_env.sh
630 - ../scripts/setup_vpp_ubuntu_docker_test.sh
633 - ../scripts/setup_vpp_ext_deps.sh
636 - ../scripts/vpp/build.sh
639 - ../scripts/packagecloud_push.sh
643 # [end] VPP-MERGE JOB TEMPLATE
645 # VPP-GCC-VERIFY JOB TEMPLATE
647 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
649 project-type: freestyle
650 node: 'builder-{os}-prod-{executor-arch}'
654 - lf-infra-properties:
655 build-days-to-keep: "{build-days-to-keep}"
657 # Please keep parameters in alphabetical order
661 - gerrit-refspec-parameter:
662 refspec: '{branch-refspec}'
663 - make-parallel-jobs-parameter:
664 make-parallel-jobs: '{make-parallel-jobs}'
673 - gerrit-trigger-scm:
674 credentials-id: 'jenkins-gerrit-credentials'
675 refspec: '$GERRIT_REFSPEC'
676 choosing-strategy: 'gerrit'
679 - fdio-infra-wrappers:
683 - gerrit-trigger-checkstyle:
690 - ../scripts/setup_executor_env.sh
693 - ../scripts/setup_vpp_ubuntu_docker_test.sh
696 - ../scripts/setup_vpp_ext_deps.sh
699 - ../scripts/vpp/gcc-build.sh
703 # [end] VPP-GCC-VERIFY JOB TEMPLATE
705 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
707 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
712 <li>csit-builder-{os}-prod-{executor-arch}
714 <li>testbed architecture
720 project-type: freestyle
721 node: 'csit-builder-{os}-prod-{executor-arch}'
726 - lf-infra-properties:
727 build-days-to-keep: "{build-days-to-keep}"
729 # Please keep parameters in alphabetical order
731 - gerrit-csit-refspec-parameter
732 - gerrit-event-comment-text-parameter
733 - gerrit-event-type-parameter
736 - gerrit-refspec-parameter:
737 refspec: '{branch-refspec}'
738 - make-parallel-jobs-parameter:
739 make-parallel-jobs: '{make-parallel-jobs}'
748 - gerrit-trigger-scm:
749 credentials-id: 'jenkins-gerrit-credentials'
750 refspec: '$GERRIT_REFSPEC'
751 choosing-strategy: 'gerrit'
754 - fdio-infra-wrappers:
758 - 'gerrit-trigger-vpp-csit-devicetest-full':
761 skip-vote: '{skip-vote}'
766 - ../scripts/setup_executor_env.sh
769 - ../scripts/setup_vpp_ubuntu_docker_test.sh
772 - ../scripts/setup_vpp_ext_deps.sh
775 - ../scripts/vpp/csit-device.sh
779 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
781 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
783 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
788 <li>builder-{os}-prod-{executor-arch}
790 <li>testbed architecture
795 Contrary to csit-vpp job, this also measures the parent performance,
796 and fails if performance regression is detected.
797 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
800 project-type: freestyle
801 node: 'builder-{os}-prod-{executor-arch}'
806 - lf-infra-properties:
807 build-days-to-keep: "{build-days-to-keep}"
809 # Please keep parameters in alphabetical order
811 - csit-perf-trial-duration-parameter:
812 csit-perf-trial-duration: "10.0"
813 - csit-perf-trial-multiplicity-parameter:
814 csit-perf-trial-multiplicity: "5"
815 - gerrit-csit-refspec-parameter
816 - gerrit-event-comment-text-parameter
817 - gerrit-event-type-parameter
818 - gerrit-refspec-parameter:
819 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-non-activity-timeout:
842 - gerrit-trigger-csit-perftest:
845 trigger-word: 'perftest-{testbed-arch}'
851 - ../scripts/setup_executor_env.sh
854 - ../scripts/setup_vpp_ubuntu_docker_test.sh
857 - ../scripts/setup_vpp_ext_deps.sh
860 - ../scripts/vpp/csit-perf.sh
864 # Can be removed when all CSIT branches use correct archive directory.
875 - ../scripts/vpp/copy_archives.sh
877 output-path: 'archives/csit_current/0/'
880 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
882 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
884 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
886 project-type: freestyle
887 node: 'builder-{os}-prod-{executor-arch}'
892 - lf-infra-properties:
893 build-days-to-keep: "{build-days-to-keep}"
895 # Please keep parameters in alphabetical order
897 # Not sure whether not failing has any useful usage,
898 # but it does not hurt to have some flexibility for future.
899 - csit-fail-on-crc-mismatch-parameter:
900 fail-on-crc-mismatch: 'True'
901 - gerrit-csit-refspec-parameter
904 - gerrit-refspec-parameter:
905 refspec: '{branch-refspec}'
912 - gerrit-trigger-scm:
913 credentials-id: 'jenkins-gerrit-credentials'
914 refspec: '$GERRIT_REFSPEC'
915 choosing-strategy: 'gerrit'
918 - fdio-infra-wrappers-non-activity-timeout:
922 - gerrit-trigger-checkstyle:
929 - ../scripts/setup_executor_env.sh
932 - ../scripts/setup_vpp_ubuntu_docker_test.sh
935 - ../scripts/vpp/check_crc.sh
936 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
940 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
941 # [end] JOB TEMPLATE DEFINITIONS