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'
195 branch: 'stable/2110'
198 branch: 'stable/2202'
203 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'
263 # [end] VPP-CSIT-VERIFY-PERF PROJECT
265 # VPP-CSIT-API-CRC PROJECT
267 # Only master and LTS branches are supported.
270 name: vpp-csit-api-crc
272 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
274 executor-arch: 'x86_64'
281 branch: 'stable/2110'
284 branch: 'stable/2202'
287 # [end] VPP-CSIT-API-CRC PROJECT
289 # LF RELENG VPP PROJECTS
294 - gerrit-info-yaml-verify
295 build-node: centos7-builder-2c-2g
304 # [end] LF RELENG VPP PROJECTS
305 # [end] PROJECT DEFINITIONS
307 # JOB TEMPLATE DEFINITIONS
309 # Please keep job templates in the same order as they are referenced
310 # in the project definitions above.
312 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
314 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
316 project-type: freestyle
317 node: 'builder-{os}-prod-{executor-arch}'
321 - lf-infra-properties:
322 build-days-to-keep: "{build-days-to-keep}"
324 # Please keep parameters in alphabetical order
328 - gerrit-refspec-parameter:
329 refspec: '{branch-refspec}'
336 - gerrit-trigger-scm:
337 credentials-id: 'jenkins-gerrit-credentials'
338 refspec: '$GERRIT_REFSPEC'
339 choosing-strategy: 'gerrit'
342 - fdio-infra-wrappers:
343 build-timeout: '{build-timeout}'
344 - credentials-binding:
346 credential-id: VppApiCompatNotify
347 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
351 server-name: 'Primary'
353 - patchset-created-event:
354 exclude-drafts: 'true'
355 exclude-trivial-rebase: 'false'
356 exclude-no-code-change: 'false'
357 - draft-published-event
358 - comment-added-contains-event:
359 comment-contains-value: 'checkstylecheck'
360 - comment-added-contains-event:
361 comment-contains-value: 'docsonly'
362 - comment-added-contains-event:
363 comment-contains-value: 'recheck'
364 - comment-added-contains-event:
365 comment-contains-value: 'reverify'
366 # Following two are to cover missing functions of drafts
367 # going to review status
368 - comment-added-contains-event:
369 comment-contains-value: 'runtest'
370 - comment-added-contains-event:
371 comment-contains-value: 'This change is ready for review'
373 - project-compare-type: 'ANT'
374 project-pattern: '{project}'
376 - branch-compare-type: 'ANT'
377 branch-pattern: '**/{branch}'
379 - compare-type: REG_EXP
380 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
381 forbidden-file-paths:
382 - compare-type: REG_EXP
384 - compare-type: REG_EXP
385 pattern: .*extras\/emacs\/.*
386 disable-strict-forbidden-file-verification: 'true'
388 gerrit-build-notbuilt-verified-value: 0
389 gerrit-build-successful-verified-value: 1
390 # yamllint disable-line rule:line-length
391 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
392 # yamllint disable-line rule:line-length
393 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
394 successful-message: 'checkstyle_success'
404 - ../scripts/setup_executor_env.sh
407 - ../scripts/vpp/checkstyle.sh
410 - ../scripts/vpp/test-checkstyle.sh
413 - ../scripts/vpp/api-checkstyle.sh
416 - ../scripts/vpp/commitmsg.sh
421 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
423 # VPP-VERIFY JOB TEMPLATE
425 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
427 project-type: freestyle
428 node: 'builder-{os}-prod-{executor-arch}'
432 - lf-infra-properties:
433 build-days-to-keep: "{build-days-to-keep}"
435 # Please keep parameters in alphabetical order
439 - gerrit-refspec-parameter:
440 refspec: '{branch-refspec}'
441 - make-parallel-jobs-parameter:
442 make-parallel-jobs: '{make-parallel-jobs}'
443 - make-test-os-parameter:
444 make-test-os: '{make-test-os}'
453 - gerrit-trigger-scm:
454 credentials-id: 'jenkins-gerrit-credentials'
455 refspec: '$GERRIT_REFSPEC'
456 choosing-strategy: 'gerrit'
459 - fdio-infra-wrappers:
463 - gerrit-trigger-checkstyle:
470 - ../scripts/setup_executor_env.sh
473 - ../scripts/setup_vpp_ubuntu_docker_test.sh
476 - ../scripts/setup_vpp_ext_deps.sh
479 - ../scripts/vpp/build.sh
483 # [end] VPP-VERIFY JOB TEMPLATE
485 # VPP-DEBUG-VERIFY JOB TEMPLATE
487 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
489 project-type: freestyle
490 node: 'builder-{os}-prod-{executor-arch}'
494 - lf-infra-properties:
495 build-days-to-keep: "{build-days-to-keep}"
497 # Please keep parameters in alphabetical order
501 - gerrit-refspec-parameter:
502 refspec: '{branch-refspec}'
503 - make-parallel-jobs-parameter:
504 make-parallel-jobs: '{make-parallel-jobs}'
505 - make-test-os-parameter:
506 make-test-os: '{make-test-os}'
515 - gerrit-trigger-scm:
516 credentials-id: 'jenkins-gerrit-credentials'
517 refspec: '$GERRIT_REFSPEC'
518 choosing-strategy: 'gerrit'
521 - fdio-infra-wrappers:
522 build-timeout: '{build-timeout}'
525 - timed: '{periodicity}'
526 - gerrit-trigger-manually-triggered:
527 comment-trigger-value: '{comment-trigger-value}'
534 - ../scripts/setup_executor_env.sh
537 - ../scripts/setup_vpp_ubuntu_docker_test.sh
540 - ../scripts/setup_vpp_ext_deps.sh
543 - ../scripts/vpp/debug-build.sh
547 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
549 # VPP-MERGE JOB TEMPLATE
551 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
553 project-type: freestyle
554 node: 'builder-{os}-prod-{executor-arch}'
557 - lf-infra-properties:
558 build-days-to-keep: "{build-days-to-keep}"
560 # Please keep parameters in alphabetical order
564 - make-parallel-jobs-parameter:
565 make-parallel-jobs: '{make-parallel-jobs}'
566 - make-test-os-parameter:
567 make-test-os: '{make-test-os}'
576 - gerrit-trigger-scm:
577 credentials-id: 'jenkins-gerrit-credentials'
579 choosing-strategy: 'default'
582 - fdio-infra-wrappers:
586 - gerrit-trigger-patch-merged:
591 - config-file-provider:
593 - file-id: '.packagecloud'
594 target: '/root/.packagecloud'
595 - config-file-provider:
597 - file-id: 'packagecloud_api'
598 target: '/root/packagecloud_api'
601 - ../scripts/setup_executor_env.sh
604 - ../scripts/setup_vpp_ubuntu_docker_test.sh
607 - ../scripts/setup_vpp_ext_deps.sh
610 - ../scripts/vpp/build.sh
613 - ../scripts/packagecloud_push.sh
617 # [end] VPP-MERGE JOB TEMPLATE
619 # VPP-GCC-VERIFY JOB TEMPLATE
621 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
623 project-type: freestyle
624 node: 'builder-{os}-prod-{executor-arch}'
628 - lf-infra-properties:
629 build-days-to-keep: "{build-days-to-keep}"
631 # Please keep parameters in alphabetical order
635 - gerrit-refspec-parameter:
636 refspec: '{branch-refspec}'
637 - make-parallel-jobs-parameter:
638 make-parallel-jobs: '{make-parallel-jobs}'
647 - gerrit-trigger-scm:
648 credentials-id: 'jenkins-gerrit-credentials'
649 refspec: '$GERRIT_REFSPEC'
650 choosing-strategy: 'gerrit'
653 - fdio-infra-wrappers:
657 - gerrit-trigger-checkstyle:
664 - ../scripts/setup_executor_env.sh
667 - ../scripts/setup_vpp_ubuntu_docker_test.sh
670 - ../scripts/setup_vpp_ext_deps.sh
673 - ../scripts/vpp/gcc-build.sh
677 # [end] VPP-GCC-VERIFY JOB TEMPLATE
679 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
681 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
686 <li>csit-builder-{os}-prod-{executor-arch}
688 <li>testbed architecture
694 project-type: freestyle
695 node: 'csit-builder-{os}-prod-{executor-arch}'
700 - lf-infra-properties:
701 build-days-to-keep: "{build-days-to-keep}"
703 # Please keep parameters in alphabetical order
705 - gerrit-csit-refspec-parameter
706 - gerrit-event-comment-text-parameter
707 - gerrit-event-type-parameter
710 - gerrit-refspec-parameter:
711 refspec: '{branch-refspec}'
712 - make-parallel-jobs-parameter:
713 make-parallel-jobs: '{make-parallel-jobs}'
722 - gerrit-trigger-scm:
723 credentials-id: 'jenkins-gerrit-credentials'
724 refspec: '$GERRIT_REFSPEC'
725 choosing-strategy: 'gerrit'
728 - fdio-infra-wrappers:
732 - 'gerrit-trigger-vpp-csit-devicetest-full':
735 skip-vote: '{skip-vote}'
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-PERPATCH JOB TEMPLATE
755 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
757 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
762 <li>builder-{os}-prod-{executor-arch}
764 <li>testbed architecture
769 Contrary to csit-vpp job, this also measures the parent performance,
770 and fails if performance regression is detected.
771 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
774 project-type: freestyle
775 node: 'builder-{os}-prod-{executor-arch}'
780 - lf-infra-properties:
781 build-days-to-keep: "{build-days-to-keep}"
783 # Please keep parameters in alphabetical order
785 - csit-perf-trial-duration-parameter:
786 csit-perf-trial-duration: "10.0"
787 - csit-perf-trial-multiplicity-parameter:
788 csit-perf-trial-multiplicity: "5"
789 - gerrit-csit-refspec-parameter
790 - gerrit-event-comment-text-parameter
791 - gerrit-event-type-parameter
792 - gerrit-refspec-parameter:
793 refspec: '{branch-refspec}'
796 - make-parallel-jobs-parameter:
797 make-parallel-jobs: '{make-parallel-jobs}'
806 - gerrit-trigger-scm:
807 credentials-id: 'jenkins-gerrit-credentials'
808 refspec: '$GERRIT_REFSPEC'
809 choosing-strategy: 'gerrit'
812 - fdio-infra-wrappers-non-activity-timeout:
816 - gerrit-trigger-csit-perftest:
819 trigger-word: 'perftest-{testbed-arch}'
825 - ../scripts/setup_executor_env.sh
828 - ../scripts/setup_vpp_ubuntu_docker_test.sh
831 - ../scripts/setup_vpp_ext_deps.sh
834 - ../scripts/vpp/csit-perf.sh
838 # Can be removed when all CSIT branches use correct archive directory.
849 - ../scripts/vpp/copy_archives.sh
851 output-path: 'archives/csit_current/0/'
854 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
856 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
858 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
860 project-type: freestyle
861 node: 'builder-{os}-prod-{executor-arch}'
866 - lf-infra-properties:
867 build-days-to-keep: "{build-days-to-keep}"
869 # Please keep parameters in alphabetical order
871 # Not sure whether not failing has any useful usage,
872 # but it does not hurt to have some flexibility for future.
873 - csit-fail-on-crc-mismatch-parameter:
874 fail-on-crc-mismatch: 'True'
875 - gerrit-csit-refspec-parameter
878 - gerrit-refspec-parameter:
879 refspec: '{branch-refspec}'
886 - gerrit-trigger-scm:
887 credentials-id: 'jenkins-gerrit-credentials'
888 refspec: '$GERRIT_REFSPEC'
889 choosing-strategy: 'gerrit'
892 - fdio-infra-wrappers-non-activity-timeout:
896 - gerrit-trigger-checkstyle:
903 - ../scripts/setup_executor_env.sh
906 - ../scripts/setup_vpp_ubuntu_docker_test.sh
909 - ../scripts/vpp/check_crc.sh
910 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
914 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
915 # [end] JOB TEMPLATE DEFINITIONS