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
87 # OS deprecated on 2202
97 # [end] VPP-X86_64 PROJECT
99 # VPP-DEBUG-X86_64 PROJECT
101 # Currently a periodic job due to intermittent failures.
102 # Limiting branches to master, since other branches
103 # may not get fixes for the intermittent failures.
106 name: vpp-debug-x86_64
108 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
110 make-parallel-jobs: '4'
111 make-test-os: 'ubuntu-20.04'
112 comment-trigger-value: 'debug-verify'
118 periodicity: 'H * * * *'
120 executor-arch: 'x86_64'
121 # [end] VPP-DEBUG-X86_64 PROJECT
123 # VPP-GCC-X86_64 PROJECT
127 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
129 executor-arch: 'x86_64'
136 branch: 'stable/2110'
139 branch: 'stable/2202'
141 # [end] VPP-GCC-X86_64 PROJECT
143 # VPP-AARCH64 PROJECT
145 # NOTE: The list of supported branches for each OS are maintained
146 # in .../ci-management/docker/scripts/lib_vpp.sh
147 # The job configuration must be derived from that list, thus
148 # modifications to both should be made at the same time.
149 # The AARCH64 architecture is in the process of catching up
150 # with X86_64 in terms of OS coverage. Thus the jobs are
151 # a subset of those defined in the docker image build script.
155 - 'vpp-verify-{stream}-{os}-{executor-arch}'
156 - 'vpp-merge-{stream}-{os}-{executor-arch}'
158 make-parallel-jobs: '16'
159 make-test-os: 'ubuntu-20.04'
165 branch: 'stable/2110'
168 branch: 'stable/2202'
173 executor-arch: 'aarch64'
175 # OS deprecated in master
178 # OS deprecated in 2202
181 # [end] VPP-AARCH64 PROJECT
183 # VPP-CSIT-VERIFY-DEVICE PROJECT
185 name: vpp-csit-verify-device
187 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
188 make-parallel-jobs: '32'
196 branch: 'stable/2110'
199 branch: 'stable/2202'
204 executor-arch: 'x86_64'
207 executor-arch: 'aarch64'
210 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
212 # VPP-CSIT-VERIFY-PERF PROJECT
214 name: vpp-csit-verify-perf
216 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
224 branch: 'stable/2110'
227 branch: 'stable/2202'
232 executor-arch: 'x86_64'
235 executor-arch: 'x86_64'
238 executor-arch: 'x86_64'
241 executor-arch: 'x86_64'
244 executor-arch: 'x86_64'
247 executor-arch: 'x86_64'
250 executor-arch: 'x86_64'
253 executor-arch: 'x86_64'
256 executor-arch: 'aarch64'
257 make-parallel-jobs: '16'
260 executor-arch: 'aarch64'
261 make-parallel-jobs: '16'
264 executor-arch: 'aarch64'
265 make-parallel-jobs: '16'
267 # [end] VPP-CSIT-VERIFY-PERF PROJECT
269 # VPP-CSIT-API-CRC PROJECT
271 # Only master and LTS branches are supported.
274 name: vpp-csit-api-crc
276 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
278 executor-arch: 'x86_64'
285 branch: 'stable/2110'
288 branch: 'stable/2202'
291 # [end] VPP-CSIT-API-CRC PROJECT
293 # LF RELENG VPP PROJECTS
298 - gerrit-info-yaml-verify
299 build-node: centos7-builder-2c-2g
308 # [end] LF RELENG VPP PROJECTS
309 # [end] PROJECT DEFINITIONS
311 # JOB TEMPLATE DEFINITIONS
313 # Please keep job templates in the same order as they are referenced
314 # in the project definitions above.
316 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
318 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
320 project-type: freestyle
321 node: 'builder-{os}-prod-{executor-arch}'
325 - lf-infra-properties:
326 build-days-to-keep: "{build-days-to-keep}"
328 # Please keep parameters in alphabetical order
332 - gerrit-refspec-parameter:
333 refspec: '{branch-refspec}'
340 - gerrit-trigger-scm:
341 credentials-id: 'jenkins-gerrit-credentials'
342 refspec: '$GERRIT_REFSPEC'
343 choosing-strategy: 'gerrit'
346 - fdio-infra-wrappers:
347 build-timeout: '{build-timeout}'
348 - credentials-binding:
350 credential-id: VppApiCompatNotify
351 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
355 server-name: 'Primary'
357 - patchset-created-event:
358 exclude-drafts: 'true'
359 exclude-trivial-rebase: 'false'
360 exclude-no-code-change: 'false'
361 - draft-published-event
362 - comment-added-contains-event:
363 comment-contains-value: 'checkstylecheck'
364 - comment-added-contains-event:
365 comment-contains-value: 'docsonly'
366 - comment-added-contains-event:
367 comment-contains-value: 'recheck'
368 - comment-added-contains-event:
369 comment-contains-value: 'reverify'
370 # Following two are to cover missing functions of drafts
371 # going to review status
372 - comment-added-contains-event:
373 comment-contains-value: 'runtest'
374 - comment-added-contains-event:
375 comment-contains-value: 'This change is ready for review'
377 - project-compare-type: 'ANT'
378 project-pattern: '{project}'
380 - branch-compare-type: 'ANT'
381 branch-pattern: '**/{branch}'
383 - compare-type: REG_EXP
384 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
385 forbidden-file-paths:
386 - compare-type: REG_EXP
388 - compare-type: REG_EXP
389 pattern: .*extras\/emacs\/.*
390 disable-strict-forbidden-file-verification: 'true'
392 gerrit-build-notbuilt-verified-value: 0
393 gerrit-build-successful-verified-value: 1
394 # yamllint disable-line rule:line-length
395 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
396 # yamllint disable-line rule:line-length
397 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
398 successful-message: 'checkstyle_success'
408 - ../scripts/setup_executor_env.sh
411 - ../scripts/vpp/checkstyle.sh
414 - ../scripts/vpp/test-checkstyle.sh
417 - ../scripts/vpp/api-checkstyle.sh
420 - ../scripts/vpp/commitmsg.sh
425 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
427 # VPP-VERIFY JOB TEMPLATE
429 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
431 project-type: freestyle
432 node: 'builder-{os}-prod-{executor-arch}'
436 - lf-infra-properties:
437 build-days-to-keep: "{build-days-to-keep}"
439 # Please keep parameters in alphabetical order
443 - gerrit-refspec-parameter:
444 refspec: '{branch-refspec}'
445 - make-parallel-jobs-parameter:
446 make-parallel-jobs: '{make-parallel-jobs}'
447 - make-test-os-parameter:
448 make-test-os: '{make-test-os}'
457 - gerrit-trigger-scm:
458 credentials-id: 'jenkins-gerrit-credentials'
459 refspec: '$GERRIT_REFSPEC'
460 choosing-strategy: 'gerrit'
463 - fdio-infra-wrappers:
467 - gerrit-trigger-checkstyle:
474 - ../scripts/setup_executor_env.sh
477 - ../scripts/setup_vpp_ubuntu_docker_test.sh
480 - ../scripts/setup_vpp_ext_deps.sh
483 - ../scripts/vpp/build.sh
487 # [end] VPP-VERIFY JOB TEMPLATE
489 # VPP-DEBUG-VERIFY JOB TEMPLATE
491 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
493 project-type: freestyle
494 node: 'builder-{os}-prod-{executor-arch}'
498 - lf-infra-properties:
499 build-days-to-keep: "{build-days-to-keep}"
501 # Please keep parameters in alphabetical order
505 - gerrit-refspec-parameter:
506 refspec: '{branch-refspec}'
507 - make-parallel-jobs-parameter:
508 make-parallel-jobs: '{make-parallel-jobs}'
509 - make-test-os-parameter:
510 make-test-os: '{make-test-os}'
519 - gerrit-trigger-scm:
520 credentials-id: 'jenkins-gerrit-credentials'
521 refspec: '$GERRIT_REFSPEC'
522 choosing-strategy: 'gerrit'
525 - fdio-infra-wrappers:
526 build-timeout: '{build-timeout}'
529 - timed: '{periodicity}'
530 - gerrit-trigger-manually-triggered:
531 comment-trigger-value: '{comment-trigger-value}'
538 - ../scripts/setup_executor_env.sh
541 - ../scripts/setup_vpp_ubuntu_docker_test.sh
544 - ../scripts/setup_vpp_ext_deps.sh
547 - ../scripts/vpp/debug-build.sh
551 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
553 # VPP-MERGE JOB TEMPLATE
555 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
557 project-type: freestyle
558 node: 'builder-{os}-prod-{executor-arch}'
561 - lf-infra-properties:
562 build-days-to-keep: "{build-days-to-keep}"
564 # Please keep parameters in alphabetical order
568 - make-parallel-jobs-parameter:
569 make-parallel-jobs: '{make-parallel-jobs}'
570 - make-test-os-parameter:
571 make-test-os: '{make-test-os}'
580 - gerrit-trigger-scm:
581 credentials-id: 'jenkins-gerrit-credentials'
583 choosing-strategy: 'default'
586 - fdio-infra-wrappers:
590 - gerrit-trigger-patch-merged:
595 - config-file-provider:
597 - file-id: '.packagecloud'
598 target: '/root/.packagecloud'
599 - config-file-provider:
601 - file-id: 'packagecloud_api'
602 target: '/root/packagecloud_api'
605 - ../scripts/setup_executor_env.sh
608 - ../scripts/setup_vpp_ubuntu_docker_test.sh
611 - ../scripts/setup_vpp_ext_deps.sh
614 - ../scripts/vpp/build.sh
617 - ../scripts/packagecloud_push.sh
621 # [end] VPP-MERGE JOB TEMPLATE
623 # VPP-GCC-VERIFY JOB TEMPLATE
625 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
627 project-type: freestyle
628 node: 'builder-{os}-prod-{executor-arch}'
632 - lf-infra-properties:
633 build-days-to-keep: "{build-days-to-keep}"
635 # Please keep parameters in alphabetical order
639 - gerrit-refspec-parameter:
640 refspec: '{branch-refspec}'
641 - make-parallel-jobs-parameter:
642 make-parallel-jobs: '{make-parallel-jobs}'
651 - gerrit-trigger-scm:
652 credentials-id: 'jenkins-gerrit-credentials'
653 refspec: '$GERRIT_REFSPEC'
654 choosing-strategy: 'gerrit'
657 - fdio-infra-wrappers:
661 - gerrit-trigger-checkstyle:
668 - ../scripts/setup_executor_env.sh
671 - ../scripts/setup_vpp_ubuntu_docker_test.sh
674 - ../scripts/setup_vpp_ext_deps.sh
677 - ../scripts/vpp/gcc-build.sh
681 # [end] VPP-GCC-VERIFY JOB TEMPLATE
683 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
685 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
690 <li>csit-builder-{os}-prod-{executor-arch}
692 <li>testbed architecture
698 project-type: freestyle
699 node: 'csit-builder-{os}-prod-{executor-arch}'
704 - lf-infra-properties:
705 build-days-to-keep: "{build-days-to-keep}"
707 # Please keep parameters in alphabetical order
709 - gerrit-csit-refspec-parameter
710 - gerrit-event-comment-text-parameter
711 - gerrit-event-type-parameter
714 - gerrit-refspec-parameter:
715 refspec: '{branch-refspec}'
716 - make-parallel-jobs-parameter:
717 make-parallel-jobs: '{make-parallel-jobs}'
726 - gerrit-trigger-scm:
727 credentials-id: 'jenkins-gerrit-credentials'
728 refspec: '$GERRIT_REFSPEC'
729 choosing-strategy: 'gerrit'
732 - fdio-infra-wrappers:
736 - 'gerrit-trigger-vpp-csit-devicetest-full':
739 skip-vote: '{skip-vote}'
744 - ../scripts/setup_executor_env.sh
747 - ../scripts/setup_vpp_ubuntu_docker_test.sh
750 - ../scripts/setup_vpp_ext_deps.sh
753 - ../scripts/vpp/csit-device.sh
757 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
759 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
761 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
766 <li>builder-{os}-prod-{executor-arch}
768 <li>testbed architecture
773 Contrary to csit-vpp job, this also measures the parent performance,
774 and fails if performance regression is detected.
775 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
778 project-type: freestyle
779 node: 'builder-{os}-prod-{executor-arch}'
784 - lf-infra-properties:
785 build-days-to-keep: "{build-days-to-keep}"
787 # Please keep parameters in alphabetical order
789 - csit-perf-trial-duration-parameter:
790 csit-perf-trial-duration: "10.0"
791 - csit-perf-trial-multiplicity-parameter:
792 csit-perf-trial-multiplicity: "5"
793 - gerrit-csit-refspec-parameter
794 - gerrit-event-comment-text-parameter
795 - gerrit-event-type-parameter
796 - gerrit-refspec-parameter:
797 refspec: '{branch-refspec}'
800 - make-parallel-jobs-parameter:
801 make-parallel-jobs: '{make-parallel-jobs}'
810 - gerrit-trigger-scm:
811 credentials-id: 'jenkins-gerrit-credentials'
812 refspec: '$GERRIT_REFSPEC'
813 choosing-strategy: 'gerrit'
816 - fdio-infra-wrappers-non-activity-timeout:
820 - gerrit-trigger-csit-perftest:
823 trigger-word: 'perftest-{testbed-arch}'
829 - ../scripts/setup_executor_env.sh
832 - ../scripts/setup_vpp_ubuntu_docker_test.sh
835 - ../scripts/setup_vpp_ext_deps.sh
838 - ../scripts/vpp/csit-perf.sh
842 # Can be removed when all CSIT branches use correct archive directory.
853 - ../scripts/vpp/copy_archives.sh
855 output-path: 'archives/csit_current/0/'
858 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
860 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
862 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
864 project-type: freestyle
865 node: 'builder-{os}-prod-{executor-arch}'
870 - lf-infra-properties:
871 build-days-to-keep: "{build-days-to-keep}"
873 # Please keep parameters in alphabetical order
875 # Not sure whether not failing has any useful usage,
876 # but it does not hurt to have some flexibility for future.
877 - csit-fail-on-crc-mismatch-parameter:
878 fail-on-crc-mismatch: 'True'
879 - gerrit-csit-refspec-parameter
882 - gerrit-refspec-parameter:
883 refspec: '{branch-refspec}'
890 - gerrit-trigger-scm:
891 credentials-id: 'jenkins-gerrit-credentials'
892 refspec: '$GERRIT_REFSPEC'
893 choosing-strategy: 'gerrit'
896 - fdio-infra-wrappers-non-activity-timeout:
900 - gerrit-trigger-checkstyle:
907 - ../scripts/setup_executor_env.sh
910 - ../scripts/setup_vpp_ubuntu_docker_test.sh
913 - ../scripts/vpp/check_crc.sh
914 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
918 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
919 # [end] JOB TEMPLATE DEFINITIONS