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}'
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 on master
93 # OS deprecated on 2202
96 # OS deprecated on 2206
106 # [end] VPP-X86_64 PROJECT
108 # VPP-DEBUG-X86_64 PROJECT
110 # Currently a periodic job due to intermittent failures.
111 # Limiting branches to master, since other branches
112 # may not get fixes for the intermittent failures.
115 name: vpp-debug-x86_64
117 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
119 make-parallel-jobs: '4'
120 make-test-os: 'ubuntu-20.04'
121 comment-trigger-value: 'debug-verify'
127 periodicity: 'H * * * *'
129 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}'
138 executor-arch: 'x86_64'
145 branch: 'stable/2110'
148 branch: 'stable/2202'
151 branch: 'stable/2206'
153 # [end] VPP-GCC-X86_64 PROJECT
155 # VPP-AARCH64 PROJECT
157 # NOTE: The list of supported branches for each OS are maintained
158 # in .../ci-management/docker/scripts/lib_vpp.sh
159 # The job configuration must be derived from that list, thus
160 # modifications to both should be made at the same time.
161 # The AARCH64 architecture is in the process of catching up
162 # with X86_64 in terms of OS coverage. Thus the jobs are
163 # a subset of those defined in the docker image build script.
167 - 'vpp-verify-{stream}-{os}-{executor-arch}'
168 - 'vpp-merge-{stream}-{os}-{executor-arch}'
170 make-parallel-jobs: '16'
171 make-test-os: 'ubuntu-20.04'
177 branch: 'stable/2110'
180 branch: 'stable/2202'
183 branch: 'stable/2206'
188 executor-arch: 'aarch64'
190 # OS deprecated on master
193 # OS deprecated on 2202
196 # OS deprecated on 2206
199 # [end] VPP-AARCH64 PROJECT
201 # VPP-CSIT-VERIFY-DEVICE PROJECT
203 name: vpp-csit-verify-device
205 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
206 make-parallel-jobs: '32'
214 branch: 'stable/2202'
217 branch: 'stable/2206'
222 executor-arch: 'x86_64'
225 executor-arch: 'aarch64'
228 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
230 # VPP-CSIT-VERIFY-PERF PROJECT
232 name: vpp-csit-verify-perf
234 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
242 branch: 'stable/2202'
245 branch: 'stable/2206'
250 executor-arch: 'x86_64'
253 executor-arch: 'x86_64'
256 executor-arch: 'x86_64'
259 executor-arch: 'x86_64'
262 executor-arch: 'x86_64'
265 executor-arch: 'x86_64'
268 executor-arch: 'x86_64'
271 executor-arch: 'x86_64'
274 executor-arch: 'aarch64'
275 make-parallel-jobs: '16'
278 executor-arch: 'aarch64'
279 make-parallel-jobs: '16'
282 executor-arch: 'aarch64'
283 make-parallel-jobs: '16'
285 # [end] VPP-CSIT-VERIFY-PERF PROJECT
287 # VPP-CSIT-API-CRC PROJECT
289 # Only master and LTS branches are supported.
292 name: vpp-csit-api-crc
294 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
296 executor-arch: 'x86_64'
303 branch: 'stable/2202'
306 branch: 'stable/2206'
309 # [end] VPP-CSIT-API-CRC PROJECT
311 # LF RELENG VPP PROJECTS
316 - gerrit-info-yaml-verify
317 build-node: centos7-builder-2c-2g
326 # [end] LF RELENG VPP PROJECTS
327 # [end] PROJECT DEFINITIONS
329 # JOB TEMPLATE DEFINITIONS
331 # Please keep job templates in the same order as they are referenced
332 # in the project definitions above.
334 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
336 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
338 project-type: freestyle
339 node: 'builder-{os}-prod-{executor-arch}'
343 - lf-infra-properties:
344 build-days-to-keep: "{build-days-to-keep}"
346 # Please keep parameters in alphabetical order
350 - gerrit-refspec-parameter:
351 refspec: '{branch-refspec}'
358 - gerrit-trigger-scm:
359 credentials-id: 'jenkins-gerrit-credentials'
360 refspec: '$GERRIT_REFSPEC'
361 choosing-strategy: 'gerrit'
364 - fdio-infra-wrappers:
365 build-timeout: '{build-timeout}'
366 - credentials-binding:
368 credential-id: VppApiCompatNotify
369 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
373 server-name: 'Primary'
375 - patchset-created-event:
376 exclude-drafts: 'true'
377 exclude-trivial-rebase: 'false'
378 exclude-no-code-change: 'false'
379 - draft-published-event
380 - comment-added-contains-event:
381 comment-contains-value: 'checkstylecheck'
382 - comment-added-contains-event:
383 comment-contains-value: 'docsonly'
384 - comment-added-contains-event:
385 comment-contains-value: 'recheck'
386 - comment-added-contains-event:
387 comment-contains-value: 'reverify'
388 # Following two are to cover missing functions of drafts
389 # going to review status
390 - comment-added-contains-event:
391 comment-contains-value: 'runtest'
392 - comment-added-contains-event:
393 comment-contains-value: 'This change is ready for review'
395 - project-compare-type: 'ANT'
396 project-pattern: '{project}'
398 - branch-compare-type: 'ANT'
399 branch-pattern: '**/{branch}'
401 - compare-type: REG_EXP
402 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
403 forbidden-file-paths:
404 - compare-type: REG_EXP
406 - compare-type: REG_EXP
407 pattern: .*extras\/emacs\/.*
408 disable-strict-forbidden-file-verification: 'true'
410 gerrit-build-notbuilt-verified-value: 0
411 gerrit-build-successful-verified-value: 1
412 # yamllint disable-line rule:line-length
413 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
414 # yamllint disable-line rule:line-length
415 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
416 successful-message: 'checkstyle_success'
426 - ../scripts/setup_executor_env.sh
429 - ../scripts/vpp/checkstyle.sh
432 - ../scripts/vpp/test-checkstyle.sh
435 - ../scripts/vpp/api-checkstyle.sh
438 - ../scripts/vpp/commitmsg.sh
443 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
445 # VPP-VERIFY JOB TEMPLATE
447 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
449 project-type: freestyle
450 node: 'builder-{os}-prod-{executor-arch}'
454 - lf-infra-properties:
455 build-days-to-keep: "{build-days-to-keep}"
457 # Please keep parameters in alphabetical order
461 - gerrit-refspec-parameter:
462 refspec: '{branch-refspec}'
463 - make-parallel-jobs-parameter:
464 make-parallel-jobs: '{make-parallel-jobs}'
465 - make-test-os-parameter:
466 make-test-os: '{make-test-os}'
475 - gerrit-trigger-scm:
476 credentials-id: 'jenkins-gerrit-credentials'
477 refspec: '$GERRIT_REFSPEC'
478 choosing-strategy: 'gerrit'
481 - fdio-infra-wrappers:
485 - gerrit-trigger-checkstyle:
492 - ../scripts/setup_executor_env.sh
495 - ../scripts/setup_vpp_ubuntu_docker_test.sh
498 - ../scripts/setup_vpp_ext_deps.sh
501 - ../scripts/vpp/build.sh
505 # [end] VPP-VERIFY JOB TEMPLATE
507 # VPP-DEBUG-VERIFY JOB TEMPLATE
509 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
511 project-type: freestyle
512 node: 'builder-{os}-prod-{executor-arch}'
516 - lf-infra-properties:
517 build-days-to-keep: "{build-days-to-keep}"
519 # Please keep parameters in alphabetical order
523 - gerrit-refspec-parameter:
524 refspec: '{branch-refspec}'
525 - make-parallel-jobs-parameter:
526 make-parallel-jobs: '{make-parallel-jobs}'
527 - make-test-os-parameter:
528 make-test-os: '{make-test-os}'
537 - gerrit-trigger-scm:
538 credentials-id: 'jenkins-gerrit-credentials'
539 refspec: '$GERRIT_REFSPEC'
540 choosing-strategy: 'gerrit'
543 - fdio-infra-wrappers:
544 build-timeout: '{build-timeout}'
547 - timed: '{periodicity}'
548 - gerrit-trigger-manually-triggered:
549 comment-trigger-value: '{comment-trigger-value}'
556 - ../scripts/setup_executor_env.sh
559 - ../scripts/setup_vpp_ubuntu_docker_test.sh
562 - ../scripts/setup_vpp_ext_deps.sh
565 - ../scripts/vpp/debug-build.sh
569 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
571 # VPP-MERGE JOB TEMPLATE
573 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
575 project-type: freestyle
576 node: 'builder-{os}-prod-{executor-arch}'
579 - lf-infra-properties:
580 build-days-to-keep: "{build-days-to-keep}"
582 # Please keep parameters in alphabetical order
586 - make-parallel-jobs-parameter:
587 make-parallel-jobs: '{make-parallel-jobs}'
588 - make-test-os-parameter:
589 make-test-os: '{make-test-os}'
598 - gerrit-trigger-scm:
599 credentials-id: 'jenkins-gerrit-credentials'
601 choosing-strategy: 'default'
604 - fdio-infra-wrappers:
608 - gerrit-trigger-patch-merged:
613 - config-file-provider:
615 - file-id: '.packagecloud'
616 target: '/root/.packagecloud'
617 - config-file-provider:
619 - file-id: 'packagecloud_api'
620 target: '/root/packagecloud_api'
623 - ../scripts/setup_executor_env.sh
626 - ../scripts/setup_vpp_ubuntu_docker_test.sh
629 - ../scripts/setup_vpp_ext_deps.sh
632 - ../scripts/vpp/build.sh
635 - ../scripts/packagecloud_push.sh
639 # [end] VPP-MERGE JOB TEMPLATE
641 # VPP-GCC-VERIFY JOB TEMPLATE
643 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
645 project-type: freestyle
646 node: 'builder-{os}-prod-{executor-arch}'
650 - lf-infra-properties:
651 build-days-to-keep: "{build-days-to-keep}"
653 # Please keep parameters in alphabetical order
657 - gerrit-refspec-parameter:
658 refspec: '{branch-refspec}'
659 - make-parallel-jobs-parameter:
660 make-parallel-jobs: '{make-parallel-jobs}'
669 - gerrit-trigger-scm:
670 credentials-id: 'jenkins-gerrit-credentials'
671 refspec: '$GERRIT_REFSPEC'
672 choosing-strategy: 'gerrit'
675 - fdio-infra-wrappers:
679 - gerrit-trigger-checkstyle:
686 - ../scripts/setup_executor_env.sh
689 - ../scripts/setup_vpp_ubuntu_docker_test.sh
692 - ../scripts/setup_vpp_ext_deps.sh
695 - ../scripts/vpp/gcc-build.sh
699 # [end] VPP-GCC-VERIFY JOB TEMPLATE
701 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
703 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
708 <li>csit-builder-{os}-prod-{executor-arch}
710 <li>testbed architecture
716 project-type: freestyle
717 node: 'csit-builder-{os}-prod-{executor-arch}'
722 - lf-infra-properties:
723 build-days-to-keep: "{build-days-to-keep}"
725 # Please keep parameters in alphabetical order
727 - gerrit-csit-refspec-parameter
728 - gerrit-event-comment-text-parameter
729 - gerrit-event-type-parameter
732 - gerrit-refspec-parameter:
733 refspec: '{branch-refspec}'
734 - make-parallel-jobs-parameter:
735 make-parallel-jobs: '{make-parallel-jobs}'
744 - gerrit-trigger-scm:
745 credentials-id: 'jenkins-gerrit-credentials'
746 refspec: '$GERRIT_REFSPEC'
747 choosing-strategy: 'gerrit'
750 - fdio-infra-wrappers:
754 - 'gerrit-trigger-vpp-csit-devicetest-full':
757 skip-vote: '{skip-vote}'
762 - ../scripts/setup_executor_env.sh
765 - ../scripts/setup_vpp_ubuntu_docker_test.sh
768 - ../scripts/setup_vpp_ext_deps.sh
771 - ../scripts/vpp/csit-device.sh
775 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
777 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
779 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
784 <li>builder-{os}-prod-{executor-arch}
786 <li>testbed architecture
791 Contrary to csit-vpp job, this also measures the parent performance,
792 and fails if performance regression is detected.
793 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
796 project-type: freestyle
797 node: 'builder-{os}-prod-{executor-arch}'
802 - lf-infra-properties:
803 build-days-to-keep: "{build-days-to-keep}"
805 # Please keep parameters in alphabetical order
807 - csit-perf-trial-duration-parameter:
808 csit-perf-trial-duration: "10.0"
809 - csit-perf-trial-multiplicity-parameter:
810 csit-perf-trial-multiplicity: "5"
811 - gerrit-csit-refspec-parameter
812 - gerrit-event-comment-text-parameter
813 - gerrit-event-type-parameter
814 - gerrit-refspec-parameter:
815 refspec: '{branch-refspec}'
818 - make-parallel-jobs-parameter:
819 make-parallel-jobs: '{make-parallel-jobs}'
828 - gerrit-trigger-scm:
829 credentials-id: 'jenkins-gerrit-credentials'
830 refspec: '$GERRIT_REFSPEC'
831 choosing-strategy: 'gerrit'
834 - fdio-infra-wrappers-non-activity-timeout:
838 - gerrit-trigger-csit-perftest:
841 trigger-word: 'perftest-{testbed-arch}'
847 - ../scripts/setup_executor_env.sh
850 - ../scripts/setup_vpp_ubuntu_docker_test.sh
853 - ../scripts/setup_vpp_ext_deps.sh
856 - ../scripts/vpp/csit-perf.sh
860 # Can be removed when all CSIT branches use correct archive directory.
871 - ../scripts/vpp/copy_archives.sh
873 output-path: 'archives/csit_current/0/'
876 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
878 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
880 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
882 project-type: freestyle
883 node: 'builder-{os}-prod-{executor-arch}'
888 - lf-infra-properties:
889 build-days-to-keep: "{build-days-to-keep}"
891 # Please keep parameters in alphabetical order
893 # Not sure whether not failing has any useful usage,
894 # but it does not hurt to have some flexibility for future.
895 - csit-fail-on-crc-mismatch-parameter:
896 fail-on-crc-mismatch: 'True'
897 - gerrit-csit-refspec-parameter
900 - gerrit-refspec-parameter:
901 refspec: '{branch-refspec}'
908 - gerrit-trigger-scm:
909 credentials-id: 'jenkins-gerrit-credentials'
910 refspec: '$GERRIT_REFSPEC'
911 choosing-strategy: 'gerrit'
914 - fdio-infra-wrappers-non-activity-timeout:
918 - gerrit-trigger-checkstyle:
925 - ../scripts/setup_executor_env.sh
928 - ../scripts/setup_vpp_ubuntu_docker_test.sh
931 - ../scripts/vpp/check_crc.sh
932 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
936 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
937 # [end] JOB TEMPLATE DEFINITIONS