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 2110
90 # [end] VPP-X86_64 PROJECT
92 # VPP-DEBUG-X86_64 PROJECT
94 # Currently a periodic job due to intermittent failures.
95 # Limiting branches to master, since other branches
96 # may not get fixes for the intermittent failures.
99 name: vpp-debug-x86_64
101 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
103 make-parallel-jobs: '4'
104 make-test-os: 'ubuntu-20.04'
105 comment-trigger-value: 'debug-verify'
111 periodicity: 'H * * * *'
113 executor-arch: 'x86_64'
114 # [end] VPP-DEBUG-X86_64 PROJECT
116 # VPP-GCC-X86_64 PROJECT
120 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
122 executor-arch: 'x86_64'
129 branch: 'stable/2106'
132 branch: 'stable/2110'
134 # [end] VPP-GCC-X86_64 PROJECT
136 # VPP-AARCH64 PROJECT
138 # NOTE: The list of supported branches for each OS are maintained
139 # in .../ci-management/docker/scripts/lib_vpp.sh
140 # The job configuration must be derived from that list, thus
141 # modifications to both should be made at the same time.
142 # The AARCH64 architecture is in the process of catching up
143 # with X86_64 in terms of OS coverage. Thus the jobs are
144 # a subset of those defined in the docker image build script.
148 - 'vpp-verify-{stream}-{os}-{executor-arch}'
149 - 'vpp-merge-{stream}-{os}-{executor-arch}'
151 make-parallel-jobs: '16'
152 make-test-os: 'ubuntu-20.04'
158 branch: 'stable/2106'
161 branch: 'stable/2110'
167 executor-arch: 'aarch64'
169 # OS deprecated in master
172 # OS deprecated in 2110
175 # [end] VPP-AARCH64 PROJECT
177 # VPP-CSIT-VERIFY-DEVICE PROJECT
179 name: vpp-csit-verify-device
181 - 'vpp-csit-verify-device-perpatch':
182 make-parallel-jobs: '32'
184 - testbed-arch: '1n-tx2'
185 - 'vpp-csit-verify-device-periodic':
186 make-parallel-jobs: '32'
187 periodicity: 'H * * * *'
189 comment-trigger-value: 'devicetest-periodic'
193 - testbed-arch: '1n-skx'
201 branch: 'stable/2106'
204 branch: 'stable/2110'
209 executor-arch: 'x86_64'
212 executor-arch: 'aarch64'
214 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
216 # VPP-CSIT-VERIFY-PERF PROJECT
218 name: vpp-csit-verify-perf
220 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
228 branch: 'stable/2106'
231 branch: 'stable/2110'
236 executor-arch: 'x86_64'
239 executor-arch: 'x86_64'
242 executor-arch: 'x86_64'
245 executor-arch: 'x86_64'
248 executor-arch: 'x86_64'
251 executor-arch: 'x86_64'
254 executor-arch: 'aarch64'
255 make-parallel-jobs: '16'
258 executor-arch: 'aarch64'
259 make-parallel-jobs: '16'
261 # [end] VPP-CSIT-VERIFY-PERF PROJECT
263 # VPP-CSIT-API-CRC PROJECT
265 # Only master and LTS branches are supported.
268 name: vpp-csit-api-crc
270 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
272 executor-arch: 'x86_64'
279 branch: 'stable/2106'
282 branch: 'stable/2110'
285 # [end] VPP-CSIT-API-CRC PROJECT
287 # LF RELENG VPP PROJECTS
292 - gerrit-info-yaml-verify
293 build-node: centos7-builder-2c-2g
302 # [end] LF RELENG VPP PROJECTS
303 # [end] PROJECT DEFINITIONS
305 # JOB TEMPLATE DEFINITIONS
307 # Please keep job templates in the same order as they are referenced
308 # in the project definitions above.
310 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
312 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
314 project-type: freestyle
315 node: 'builder-{os}-prod-{executor-arch}'
319 - lf-infra-properties:
320 build-days-to-keep: "{build-days-to-keep}"
322 # Please keep parameters in alphabetical order
326 - gerrit-refspec-parameter:
327 refspec: '{branch-refspec}'
334 - gerrit-trigger-scm:
335 credentials-id: 'jenkins-gerrit-credentials'
336 refspec: '$GERRIT_REFSPEC'
337 choosing-strategy: 'gerrit'
340 - fdio-infra-wrappers:
341 build-timeout: '{build-timeout}'
342 - credentials-binding:
344 credential-id: VppApiCompatNotify
345 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
349 server-name: 'Primary'
351 - patchset-created-event:
352 exclude-drafts: 'true'
353 exclude-trivial-rebase: 'false'
354 exclude-no-code-change: 'false'
355 - draft-published-event
356 - comment-added-contains-event:
357 comment-contains-value: 'checkstylecheck'
358 - comment-added-contains-event:
359 comment-contains-value: 'docsonly'
360 - comment-added-contains-event:
361 comment-contains-value: 'recheck'
362 - comment-added-contains-event:
363 comment-contains-value: 'reverify'
364 # Following two are to cover missing functions of drafts
365 # going to review status
366 - comment-added-contains-event:
367 comment-contains-value: 'runtest'
368 - comment-added-contains-event:
369 comment-contains-value: 'This change is ready for review'
371 - project-compare-type: 'ANT'
372 project-pattern: '{project}'
374 - branch-compare-type: 'ANT'
375 branch-pattern: '**/{branch}'
377 - compare-type: REG_EXP
378 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
379 forbidden-file-paths:
380 - compare-type: REG_EXP
382 - compare-type: REG_EXP
383 pattern: .*extras\/emacs\/.*
384 disable-strict-forbidden-file-verification: 'true'
386 gerrit-build-notbuilt-verified-value: 0
387 gerrit-build-successful-verified-value: 1
388 # yamllint disable-line rule:line-length
389 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
390 # yamllint disable-line rule:line-length
391 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
392 successful-message: 'checkstyle_success'
402 - ../scripts/setup_executor_env.sh
405 - ../scripts/vpp/checkstyle.sh
408 - ../scripts/vpp/test-checkstyle.sh
411 - ../scripts/vpp/api-checkstyle.sh
414 - ../scripts/vpp/commitmsg.sh
419 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
421 # VPP-VERIFY JOB TEMPLATE
423 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
425 project-type: freestyle
426 node: 'builder-{os}-prod-{executor-arch}'
430 - lf-infra-properties:
431 build-days-to-keep: "{build-days-to-keep}"
433 # Please keep parameters in alphabetical order
437 - gerrit-refspec-parameter:
438 refspec: '{branch-refspec}'
439 - make-parallel-jobs-parameter:
440 make-parallel-jobs: '{make-parallel-jobs}'
441 - make-test-os-parameter:
442 make-test-os: '{make-test-os}'
451 - gerrit-trigger-scm:
452 credentials-id: 'jenkins-gerrit-credentials'
453 refspec: '$GERRIT_REFSPEC'
454 choosing-strategy: 'gerrit'
457 - fdio-infra-wrappers:
461 - gerrit-trigger-checkstyle:
468 - ../scripts/setup_executor_env.sh
471 - ../scripts/setup_vpp_ubuntu_docker_test.sh
474 - ../scripts/setup_vpp_ext_deps.sh
477 - ../scripts/vpp/build.sh
481 # [end] VPP-VERIFY JOB TEMPLATE
483 # VPP-DEBUG-VERIFY JOB TEMPLATE
485 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
487 project-type: freestyle
488 node: 'builder-{os}-prod-{executor-arch}'
492 - lf-infra-properties:
493 build-days-to-keep: "{build-days-to-keep}"
495 # Please keep parameters in alphabetical order
499 - gerrit-refspec-parameter:
500 refspec: '{branch-refspec}'
501 - make-parallel-jobs-parameter:
502 make-parallel-jobs: '{make-parallel-jobs}'
503 - make-test-os-parameter:
504 make-test-os: '{make-test-os}'
513 - gerrit-trigger-scm:
514 credentials-id: 'jenkins-gerrit-credentials'
515 refspec: '$GERRIT_REFSPEC'
516 choosing-strategy: 'gerrit'
519 - fdio-infra-wrappers:
520 build-timeout: '{build-timeout}'
523 - timed: '{periodicity}'
524 - gerrit-trigger-manually-triggered:
525 comment-trigger-value: '{comment-trigger-value}'
532 - ../scripts/setup_executor_env.sh
535 - ../scripts/setup_vpp_ubuntu_docker_test.sh
538 - ../scripts/setup_vpp_ext_deps.sh
541 - ../scripts/vpp/debug-build.sh
545 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
547 # VPP-MERGE JOB TEMPLATE
549 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
551 project-type: freestyle
552 node: 'builder-{os}-prod-{executor-arch}'
555 - lf-infra-properties:
556 build-days-to-keep: "{build-days-to-keep}"
558 # Please keep parameters in alphabetical order
562 - make-parallel-jobs-parameter:
563 make-parallel-jobs: '{make-parallel-jobs}'
564 - make-test-os-parameter:
565 make-test-os: '{make-test-os}'
574 - gerrit-trigger-scm:
575 credentials-id: 'jenkins-gerrit-credentials'
577 choosing-strategy: 'default'
580 - fdio-infra-wrappers:
584 - gerrit-trigger-patch-merged:
589 - config-file-provider:
591 - file-id: '.packagecloud'
592 target: '/root/.packagecloud'
593 - config-file-provider:
595 - file-id: 'packagecloud_api'
596 target: '/root/packagecloud_api'
599 - ../scripts/setup_executor_env.sh
602 - ../scripts/setup_vpp_ubuntu_docker_test.sh
605 - ../scripts/setup_vpp_ext_deps.sh
608 - ../scripts/vpp/build.sh
611 - ../scripts/packagecloud_push.sh
615 # [end] VPP-MERGE JOB TEMPLATE
617 # VPP-GCC-VERIFY JOB TEMPLATE
619 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
621 project-type: freestyle
622 node: 'builder-{os}-prod-{executor-arch}'
626 - lf-infra-properties:
627 build-days-to-keep: "{build-days-to-keep}"
629 # Please keep parameters in alphabetical order
633 - gerrit-refspec-parameter:
634 refspec: '{branch-refspec}'
635 - make-parallel-jobs-parameter:
636 make-parallel-jobs: '{make-parallel-jobs}'
645 - gerrit-trigger-scm:
646 credentials-id: 'jenkins-gerrit-credentials'
647 refspec: '$GERRIT_REFSPEC'
648 choosing-strategy: 'gerrit'
651 - fdio-infra-wrappers:
655 - gerrit-trigger-checkstyle:
662 - ../scripts/setup_executor_env.sh
665 - ../scripts/setup_vpp_ubuntu_docker_test.sh
668 - ../scripts/setup_vpp_ext_deps.sh
671 - ../scripts/vpp/gcc-build.sh
675 # [end] VPP-GCC-VERIFY JOB TEMPLATE
677 # VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
679 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
680 id: 'vpp-csit-verify-device-periodic'
685 <li>csit-builder-{os}-prod-{executor-arch}
687 <li>testbed architecture
693 project-type: freestyle
694 node: 'csit-builder-{os}-prod-{executor-arch}'
699 - lf-infra-properties:
700 build-days-to-keep: "{build-days-to-keep}"
702 # Please keep parameters in alphabetical order
704 - gerrit-csit-refspec-parameter
705 - gerrit-event-comment-text-parameter
706 - gerrit-event-type-parameter
709 - gerrit-refspec-parameter:
710 refspec: '{branch-refspec}'
711 - make-parallel-jobs-parameter:
712 make-parallel-jobs: '{make-parallel-jobs}'
721 - gerrit-trigger-scm:
722 credentials-id: 'jenkins-gerrit-credentials'
723 refspec: '$GERRIT_REFSPEC'
724 choosing-strategy: 'default'
727 - fdio-infra-wrappers:
731 - timed: '{periodicity}'
732 - gerrit-trigger-manually-triggered:
733 comment-trigger-value: '{comment-trigger-value}'
740 - ../scripts/setup_executor_env.sh
743 - ../scripts/setup_vpp_ubuntu_docker_test.sh
746 - ../scripts/setup_vpp_ext_deps.sh
749 - ../scripts/vpp/csit-device.sh
753 # [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
755 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
757 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
758 id: 'vpp-csit-verify-device-perpatch'
763 <li>csit-builder-{os}-prod-{executor-arch}
765 <li>testbed architecture
771 project-type: freestyle
772 node: 'csit-builder-{os}-prod-{executor-arch}'
777 - lf-infra-properties:
778 build-days-to-keep: "{build-days-to-keep}"
780 # Please keep parameters in alphabetical order
782 - gerrit-csit-refspec-parameter
783 - gerrit-event-comment-text-parameter
784 - gerrit-event-type-parameter
787 - gerrit-refspec-parameter:
788 refspec: '{branch-refspec}'
789 - make-parallel-jobs-parameter:
790 make-parallel-jobs: '{make-parallel-jobs}'
799 - gerrit-trigger-scm:
800 credentials-id: 'jenkins-gerrit-credentials'
801 refspec: '$GERRIT_REFSPEC'
802 choosing-strategy: 'gerrit'
805 - fdio-infra-wrappers:
809 - 'gerrit-trigger-vpp-csit-devicetest-full':
812 skip-vote: '{skip-vote}'
817 - ../scripts/setup_executor_env.sh
820 - ../scripts/setup_vpp_ubuntu_docker_test.sh
823 - ../scripts/setup_vpp_ext_deps.sh
826 - ../scripts/vpp/csit-device.sh
830 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
832 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
834 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
839 <li>builder-{os}-prod-{executor-arch}
841 <li>testbed architecture
846 Contrary to csit-vpp job, this also measures the parent performance,
847 and fails if performance regression is detected.
848 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
851 project-type: freestyle
852 node: 'builder-{os}-prod-{executor-arch}'
857 - lf-infra-properties:
858 build-days-to-keep: "{build-days-to-keep}"
860 # Please keep parameters in alphabetical order
862 - csit-perf-trial-duration-parameter:
863 csit-perf-trial-duration: "10.0"
864 - csit-perf-trial-multiplicity-parameter:
865 csit-perf-trial-multiplicity: "5"
866 - gerrit-csit-refspec-parameter
867 - gerrit-event-comment-text-parameter
868 - gerrit-event-type-parameter
869 - gerrit-refspec-parameter:
870 refspec: '{branch-refspec}'
873 - make-parallel-jobs-parameter:
874 make-parallel-jobs: '{make-parallel-jobs}'
883 - gerrit-trigger-scm:
884 credentials-id: 'jenkins-gerrit-credentials'
885 refspec: '$GERRIT_REFSPEC'
886 choosing-strategy: 'gerrit'
889 - fdio-infra-wrappers-non-activity-timeout:
893 - gerrit-trigger-csit-perftest:
896 trigger-word: 'perftest-{testbed-arch}'
902 - ../scripts/setup_executor_env.sh
905 - ../scripts/setup_vpp_ubuntu_docker_test.sh
908 - ../scripts/setup_vpp_ext_deps.sh
911 - ../scripts/vpp/csit-perf.sh
915 # Can be removed when all CSIT branches use correct archive directory.
926 - ../scripts/vpp/copy_archives.sh
928 output-path: 'archives/csit_current/0/'
931 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
933 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
935 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
937 project-type: freestyle
938 node: 'builder-{os}-prod-{executor-arch}'
943 - lf-infra-properties:
944 build-days-to-keep: "{build-days-to-keep}"
946 # Please keep parameters in alphabetical order
948 # Not sure whether not failing has any useful usage,
949 # but it does not hurt to have some flexibility for future.
950 - csit-fail-on-crc-mismatch-parameter:
951 fail-on-crc-mismatch: 'True'
952 - gerrit-csit-refspec-parameter
955 - gerrit-refspec-parameter:
956 refspec: '{branch-refspec}'
963 - gerrit-trigger-scm:
964 credentials-id: 'jenkins-gerrit-credentials'
965 refspec: '$GERRIT_REFSPEC'
966 choosing-strategy: 'gerrit'
969 - fdio-infra-wrappers-non-activity-timeout:
973 - gerrit-trigger-checkstyle:
980 - ../scripts/setup_executor_env.sh
983 - ../scripts/setup_vpp_ubuntu_docker_test.sh
986 - ../scripts/vpp/check_crc.sh
987 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
991 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
992 # [end] JOB TEMPLATE DEFINITIONS