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'
81 executor-arch: 'x86_64'
83 # OS deprecated in master
86 # OS deprecated on 2202
89 # [end] VPP-X86_64 PROJECT
91 # VPP-DEBUG-X86_64 PROJECT
93 # Currently a periodic job due to intermittent failures.
94 # Limiting branches to master, since other branches
95 # may not get fixes for the intermittent failures.
98 name: vpp-debug-x86_64
100 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
102 make-parallel-jobs: '4'
103 make-test-os: 'ubuntu-20.04'
104 comment-trigger-value: 'debug-verify'
110 periodicity: 'H * * * *'
112 executor-arch: 'x86_64'
113 # [end] VPP-DEBUG-X86_64 PROJECT
115 # VPP-GCC-X86_64 PROJECT
119 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
121 executor-arch: 'x86_64'
128 branch: 'stable/2110'
131 branch: 'stable/2202'
133 # [end] VPP-GCC-X86_64 PROJECT
135 # VPP-AARCH64 PROJECT
137 # NOTE: The list of supported branches for each OS are maintained
138 # in .../ci-management/docker/scripts/lib_vpp.sh
139 # The job configuration must be derived from that list, thus
140 # modifications to both should be made at the same time.
141 # The AARCH64 architecture is in the process of catching up
142 # with X86_64 in terms of OS coverage. Thus the jobs are
143 # a subset of those defined in the docker image build script.
147 - 'vpp-verify-{stream}-{os}-{executor-arch}'
148 - 'vpp-merge-{stream}-{os}-{executor-arch}'
150 make-parallel-jobs: '16'
151 make-test-os: 'ubuntu-20.04'
157 branch: 'stable/2110'
160 branch: 'stable/2202'
165 executor-arch: 'aarch64'
167 # OS deprecated in master
170 # OS deprecated in 2202
173 # [end] VPP-AARCH64 PROJECT
175 # VPP-CSIT-VERIFY-DEVICE PROJECT
177 name: vpp-csit-verify-device
179 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
180 make-parallel-jobs: '32'
188 branch: 'stable/2110'
191 branch: 'stable/2202'
196 executor-arch: 'x86_64'
199 executor-arch: 'aarch64'
202 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
204 # VPP-CSIT-VERIFY-PERF PROJECT
206 name: vpp-csit-verify-perf
208 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
216 branch: 'stable/2110'
219 branch: 'stable/2202'
224 executor-arch: 'x86_64'
227 executor-arch: 'x86_64'
230 executor-arch: 'x86_64'
233 executor-arch: 'x86_64'
236 executor-arch: 'x86_64'
239 executor-arch: 'x86_64'
242 executor-arch: 'x86_64'
245 executor-arch: 'x86_64'
248 executor-arch: 'aarch64'
249 make-parallel-jobs: '16'
252 executor-arch: 'aarch64'
253 make-parallel-jobs: '16'
255 # [end] VPP-CSIT-VERIFY-PERF PROJECT
257 # VPP-CSIT-API-CRC PROJECT
259 # Only master and LTS branches are supported.
262 name: vpp-csit-api-crc
264 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
266 executor-arch: 'x86_64'
273 branch: 'stable/2110'
276 branch: 'stable/2202'
279 # [end] VPP-CSIT-API-CRC PROJECT
281 # LF RELENG VPP PROJECTS
286 - gerrit-info-yaml-verify
287 build-node: centos7-builder-2c-2g
296 # [end] LF RELENG VPP PROJECTS
297 # [end] PROJECT DEFINITIONS
299 # JOB TEMPLATE DEFINITIONS
301 # Please keep job templates in the same order as they are referenced
302 # in the project definitions above.
304 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
306 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
308 project-type: freestyle
309 node: 'builder-{os}-prod-{executor-arch}'
313 - lf-infra-properties:
314 build-days-to-keep: "{build-days-to-keep}"
316 # Please keep parameters in alphabetical order
320 - gerrit-refspec-parameter:
321 refspec: '{branch-refspec}'
328 - gerrit-trigger-scm:
329 credentials-id: 'jenkins-gerrit-credentials'
330 refspec: '$GERRIT_REFSPEC'
331 choosing-strategy: 'gerrit'
334 - fdio-infra-wrappers:
335 build-timeout: '{build-timeout}'
336 - credentials-binding:
338 credential-id: VppApiCompatNotify
339 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
343 server-name: 'Primary'
345 - patchset-created-event:
346 exclude-drafts: 'true'
347 exclude-trivial-rebase: 'false'
348 exclude-no-code-change: 'false'
349 - draft-published-event
350 - comment-added-contains-event:
351 comment-contains-value: 'checkstylecheck'
352 - comment-added-contains-event:
353 comment-contains-value: 'docsonly'
354 - comment-added-contains-event:
355 comment-contains-value: 'recheck'
356 - comment-added-contains-event:
357 comment-contains-value: 'reverify'
358 # Following two are to cover missing functions of drafts
359 # going to review status
360 - comment-added-contains-event:
361 comment-contains-value: 'runtest'
362 - comment-added-contains-event:
363 comment-contains-value: 'This change is ready for review'
365 - project-compare-type: 'ANT'
366 project-pattern: '{project}'
368 - branch-compare-type: 'ANT'
369 branch-pattern: '**/{branch}'
371 - compare-type: REG_EXP
372 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
373 forbidden-file-paths:
374 - compare-type: REG_EXP
376 - compare-type: REG_EXP
377 pattern: .*extras\/emacs\/.*
378 disable-strict-forbidden-file-verification: 'true'
380 gerrit-build-notbuilt-verified-value: 0
381 gerrit-build-successful-verified-value: 1
382 # yamllint disable-line rule:line-length
383 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
384 # yamllint disable-line rule:line-length
385 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
386 successful-message: 'checkstyle_success'
396 - ../scripts/setup_executor_env.sh
399 - ../scripts/vpp/checkstyle.sh
402 - ../scripts/vpp/test-checkstyle.sh
405 - ../scripts/vpp/api-checkstyle.sh
408 - ../scripts/vpp/commitmsg.sh
413 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
415 # VPP-VERIFY JOB TEMPLATE
417 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
419 project-type: freestyle
420 node: 'builder-{os}-prod-{executor-arch}'
424 - lf-infra-properties:
425 build-days-to-keep: "{build-days-to-keep}"
427 # Please keep parameters in alphabetical order
431 - gerrit-refspec-parameter:
432 refspec: '{branch-refspec}'
433 - make-parallel-jobs-parameter:
434 make-parallel-jobs: '{make-parallel-jobs}'
435 - make-test-os-parameter:
436 make-test-os: '{make-test-os}'
445 - gerrit-trigger-scm:
446 credentials-id: 'jenkins-gerrit-credentials'
447 refspec: '$GERRIT_REFSPEC'
448 choosing-strategy: 'gerrit'
451 - fdio-infra-wrappers:
455 - gerrit-trigger-checkstyle:
462 - ../scripts/setup_executor_env.sh
465 - ../scripts/setup_vpp_ubuntu_docker_test.sh
468 - ../scripts/setup_vpp_ext_deps.sh
471 - ../scripts/vpp/build.sh
475 # [end] VPP-VERIFY JOB TEMPLATE
477 # VPP-DEBUG-VERIFY JOB TEMPLATE
479 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
481 project-type: freestyle
482 node: 'builder-{os}-prod-{executor-arch}'
486 - lf-infra-properties:
487 build-days-to-keep: "{build-days-to-keep}"
489 # Please keep parameters in alphabetical order
493 - gerrit-refspec-parameter:
494 refspec: '{branch-refspec}'
495 - make-parallel-jobs-parameter:
496 make-parallel-jobs: '{make-parallel-jobs}'
497 - make-test-os-parameter:
498 make-test-os: '{make-test-os}'
507 - gerrit-trigger-scm:
508 credentials-id: 'jenkins-gerrit-credentials'
509 refspec: '$GERRIT_REFSPEC'
510 choosing-strategy: 'gerrit'
513 - fdio-infra-wrappers:
514 build-timeout: '{build-timeout}'
517 - timed: '{periodicity}'
518 - gerrit-trigger-manually-triggered:
519 comment-trigger-value: '{comment-trigger-value}'
526 - ../scripts/setup_executor_env.sh
529 - ../scripts/setup_vpp_ubuntu_docker_test.sh
532 - ../scripts/setup_vpp_ext_deps.sh
535 - ../scripts/vpp/debug-build.sh
539 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
541 # VPP-MERGE JOB TEMPLATE
543 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
545 project-type: freestyle
546 node: 'builder-{os}-prod-{executor-arch}'
549 - lf-infra-properties:
550 build-days-to-keep: "{build-days-to-keep}"
552 # Please keep parameters in alphabetical order
556 - make-parallel-jobs-parameter:
557 make-parallel-jobs: '{make-parallel-jobs}'
558 - make-test-os-parameter:
559 make-test-os: '{make-test-os}'
568 - gerrit-trigger-scm:
569 credentials-id: 'jenkins-gerrit-credentials'
571 choosing-strategy: 'default'
574 - fdio-infra-wrappers:
578 - gerrit-trigger-patch-merged:
583 - config-file-provider:
585 - file-id: '.packagecloud'
586 target: '/root/.packagecloud'
587 - config-file-provider:
589 - file-id: 'packagecloud_api'
590 target: '/root/packagecloud_api'
593 - ../scripts/setup_executor_env.sh
596 - ../scripts/setup_vpp_ubuntu_docker_test.sh
599 - ../scripts/setup_vpp_ext_deps.sh
602 - ../scripts/vpp/build.sh
605 - ../scripts/packagecloud_push.sh
609 # [end] VPP-MERGE JOB TEMPLATE
611 # VPP-GCC-VERIFY JOB TEMPLATE
613 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
615 project-type: freestyle
616 node: 'builder-{os}-prod-{executor-arch}'
620 - lf-infra-properties:
621 build-days-to-keep: "{build-days-to-keep}"
623 # Please keep parameters in alphabetical order
627 - gerrit-refspec-parameter:
628 refspec: '{branch-refspec}'
629 - make-parallel-jobs-parameter:
630 make-parallel-jobs: '{make-parallel-jobs}'
639 - gerrit-trigger-scm:
640 credentials-id: 'jenkins-gerrit-credentials'
641 refspec: '$GERRIT_REFSPEC'
642 choosing-strategy: 'gerrit'
645 - fdio-infra-wrappers:
649 - gerrit-trigger-checkstyle:
656 - ../scripts/setup_executor_env.sh
659 - ../scripts/setup_vpp_ubuntu_docker_test.sh
662 - ../scripts/setup_vpp_ext_deps.sh
665 - ../scripts/vpp/gcc-build.sh
669 # [end] VPP-GCC-VERIFY JOB TEMPLATE
671 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
673 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
678 <li>csit-builder-{os}-prod-{executor-arch}
680 <li>testbed architecture
686 project-type: freestyle
687 node: 'csit-builder-{os}-prod-{executor-arch}'
692 - lf-infra-properties:
693 build-days-to-keep: "{build-days-to-keep}"
695 # Please keep parameters in alphabetical order
697 - gerrit-csit-refspec-parameter
698 - gerrit-event-comment-text-parameter
699 - gerrit-event-type-parameter
702 - gerrit-refspec-parameter:
703 refspec: '{branch-refspec}'
704 - make-parallel-jobs-parameter:
705 make-parallel-jobs: '{make-parallel-jobs}'
714 - gerrit-trigger-scm:
715 credentials-id: 'jenkins-gerrit-credentials'
716 refspec: '$GERRIT_REFSPEC'
717 choosing-strategy: 'gerrit'
720 - fdio-infra-wrappers:
724 - 'gerrit-trigger-vpp-csit-devicetest-full':
727 skip-vote: '{skip-vote}'
732 - ../scripts/setup_executor_env.sh
735 - ../scripts/setup_vpp_ubuntu_docker_test.sh
738 - ../scripts/setup_vpp_ext_deps.sh
741 - ../scripts/vpp/csit-device.sh
745 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
747 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
749 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
754 <li>builder-{os}-prod-{executor-arch}
756 <li>testbed architecture
761 Contrary to csit-vpp job, this also measures the parent performance,
762 and fails if performance regression is detected.
763 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
766 project-type: freestyle
767 node: 'builder-{os}-prod-{executor-arch}'
772 - lf-infra-properties:
773 build-days-to-keep: "{build-days-to-keep}"
775 # Please keep parameters in alphabetical order
777 - csit-perf-trial-duration-parameter:
778 csit-perf-trial-duration: "10.0"
779 - csit-perf-trial-multiplicity-parameter:
780 csit-perf-trial-multiplicity: "5"
781 - gerrit-csit-refspec-parameter
782 - gerrit-event-comment-text-parameter
783 - gerrit-event-type-parameter
784 - gerrit-refspec-parameter:
785 refspec: '{branch-refspec}'
788 - make-parallel-jobs-parameter:
789 make-parallel-jobs: '{make-parallel-jobs}'
798 - gerrit-trigger-scm:
799 credentials-id: 'jenkins-gerrit-credentials'
800 refspec: '$GERRIT_REFSPEC'
801 choosing-strategy: 'gerrit'
804 - fdio-infra-wrappers-non-activity-timeout:
808 - gerrit-trigger-csit-perftest:
811 trigger-word: 'perftest-{testbed-arch}'
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-perf.sh
830 # Can be removed when all CSIT branches use correct archive directory.
841 - ../scripts/vpp/copy_archives.sh
843 output-path: 'archives/csit_current/0/'
846 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
848 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
850 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
852 project-type: freestyle
853 node: 'builder-{os}-prod-{executor-arch}'
858 - lf-infra-properties:
859 build-days-to-keep: "{build-days-to-keep}"
861 # Please keep parameters in alphabetical order
863 # Not sure whether not failing has any useful usage,
864 # but it does not hurt to have some flexibility for future.
865 - csit-fail-on-crc-mismatch-parameter:
866 fail-on-crc-mismatch: 'True'
867 - gerrit-csit-refspec-parameter
870 - gerrit-refspec-parameter:
871 refspec: '{branch-refspec}'
878 - gerrit-trigger-scm:
879 credentials-id: 'jenkins-gerrit-credentials'
880 refspec: '$GERRIT_REFSPEC'
881 choosing-strategy: 'gerrit'
884 - fdio-infra-wrappers-non-activity-timeout:
888 - gerrit-trigger-checkstyle:
895 - ../scripts/setup_executor_env.sh
898 - ../scripts/setup_vpp_ubuntu_docker_test.sh
901 - ../scripts/vpp/check_crc.sh
902 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
906 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
907 # [end] JOB TEMPLATE DEFINITIONS