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}'
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'
86 # [end] VPP-X86_64 PROJECT
88 # VPP-DEBUG-X86_64 PROJECT
90 # Currently a periodic job due to intermittent failures.
91 # Limiting branches to master, since other branches
92 # may not get fixes for the intermittent failures.
95 name: vpp-debug-x86_64
97 - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
99 make-parallel-jobs: '4'
100 make-test-os: 'ubuntu-20.04'
101 comment-trigger-value: 'debug-verify'
107 periodicity: 'H * * * *'
109 executor-arch: 'x86_64'
110 # [end] VPP-DEBUG-X86_64 PROJECT
112 # VPP-GCC-X86_64 PROJECT
116 - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
118 executor-arch: 'x86_64'
125 branch: 'stable/2202'
128 branch: 'stable/2206'
130 # [end] VPP-GCC-X86_64 PROJECT
132 # VPP-AARCH64 PROJECT
134 # NOTE: The list of supported branches for each OS are maintained
135 # in .../ci-management/docker/scripts/lib_vpp.sh
136 # The job configuration must be derived from that list, thus
137 # modifications to both should be made at the same time.
138 # The AARCH64 architecture is in the process of catching up
139 # with X86_64 in terms of OS coverage. Thus the jobs are
140 # a subset of those defined in the docker image build script.
144 - 'vpp-verify-{stream}-{os}-{executor-arch}'
145 - 'vpp-merge-{stream}-{os}-{executor-arch}'
147 make-parallel-jobs: '16'
148 make-test-os: 'ubuntu-20.04'
154 branch: 'stable/2202'
157 branch: 'stable/2206'
161 executor-arch: 'aarch64'
162 # [end] VPP-AARCH64 PROJECT
164 # VPP-CSIT-VERIFY-DEVICE PROJECT
166 name: vpp-csit-verify-device
168 - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
169 make-parallel-jobs: '32'
177 branch: 'stable/2202'
180 branch: 'stable/2206'
185 executor-arch: 'x86_64'
188 executor-arch: 'aarch64'
191 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
193 # VPP-CSIT-VERIFY-PERF PROJECT
195 name: vpp-csit-verify-perf
197 - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
205 branch: 'stable/2202'
208 branch: 'stable/2206'
213 executor-arch: 'x86_64'
216 executor-arch: 'x86_64'
219 executor-arch: 'x86_64'
222 executor-arch: 'x86_64'
225 executor-arch: 'x86_64'
228 executor-arch: 'x86_64'
231 executor-arch: 'x86_64'
234 executor-arch: 'x86_64'
237 executor-arch: 'aarch64'
238 make-parallel-jobs: '16'
241 executor-arch: 'aarch64'
242 make-parallel-jobs: '16'
245 executor-arch: 'aarch64'
246 make-parallel-jobs: '16'
249 executor-arch: 'x86_64'
251 # [end] VPP-CSIT-VERIFY-PERF PROJECT
253 # VPP-CSIT-API-CRC PROJECT
255 # Only master and LTS branches are supported.
258 name: vpp-csit-api-crc
260 - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
262 executor-arch: 'x86_64'
269 branch: 'stable/2202'
272 branch: 'stable/2206'
275 # [end] VPP-CSIT-API-CRC PROJECT
277 # LF RELENG VPP PROJECTS
282 - gerrit-info-yaml-verify
283 build-node: centos7-builder-2c-2g
292 # [end] LF RELENG VPP PROJECTS
293 # [end] PROJECT DEFINITIONS
295 # JOB TEMPLATE DEFINITIONS
297 # Please keep job templates in the same order as they are referenced
298 # in the project definitions above.
300 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
302 name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
304 project-type: freestyle
305 node: 'builder-{os}-prod-{executor-arch}'
309 - lf-infra-properties:
310 build-days-to-keep: "{build-days-to-keep}"
312 # Please keep parameters in alphabetical order
316 - gerrit-refspec-parameter:
317 refspec: '{branch-refspec}'
324 - gerrit-trigger-scm:
325 credentials-id: 'jenkins-gerrit-credentials'
326 refspec: '$GERRIT_REFSPEC'
327 choosing-strategy: 'gerrit'
330 - fdio-infra-wrappers:
331 build-timeout: '{build-timeout}'
332 - credentials-binding:
334 credential-id: VppApiCompatNotify
335 variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
339 server-name: 'Primary'
341 - patchset-created-event:
342 exclude-drafts: 'true'
343 exclude-trivial-rebase: 'false'
344 exclude-no-code-change: 'false'
345 - draft-published-event
346 - comment-added-contains-event:
347 comment-contains-value: 'checkstylecheck'
348 - comment-added-contains-event:
349 comment-contains-value: 'docsonly'
350 - comment-added-contains-event:
351 comment-contains-value: 'recheck'
352 - comment-added-contains-event:
353 comment-contains-value: 'reverify'
354 # Following two are to cover missing functions of drafts
355 # going to review status
356 - comment-added-contains-event:
357 comment-contains-value: 'runtest'
358 - comment-added-contains-event:
359 comment-contains-value: 'This change is ready for review'
361 - project-compare-type: 'ANT'
362 project-pattern: '{project}'
364 - branch-compare-type: 'ANT'
365 branch-pattern: '**/{branch}'
367 - compare-type: REG_EXP
368 pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
369 forbidden-file-paths:
370 - compare-type: REG_EXP
371 pattern: .*extras\/emacs\/.*
372 disable-strict-forbidden-file-verification: 'true'
374 gerrit-build-notbuilt-verified-value: 0
375 gerrit-build-successful-verified-value: 1
376 # yamllint disable-line rule:line-length
377 notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
378 # yamllint disable-line rule:line-length
379 failed-message: 'Checkstyle failed. No further verify jobs will be started.'
380 successful-message: 'checkstyle_success'
390 - ../scripts/setup_executor_env.sh
393 - ../scripts/vpp/checkstyle.sh
396 - ../scripts/vpp/test-checkstyle.sh
399 - ../scripts/vpp/api-checkstyle.sh
402 - ../scripts/vpp/commitmsg.sh
405 - ../scripts/vpp/docs_spell.sh
410 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
412 # VPP-VERIFY JOB TEMPLATE
414 name: 'vpp-verify-{stream}-{os}-{executor-arch}'
416 project-type: freestyle
417 node: 'builder-{os}-prod-{executor-arch}'
421 - lf-infra-properties:
422 build-days-to-keep: "{build-days-to-keep}"
424 # Please keep parameters in alphabetical order
428 - gerrit-refspec-parameter:
429 refspec: '{branch-refspec}'
430 - make-parallel-jobs-parameter:
431 make-parallel-jobs: '{make-parallel-jobs}'
432 - make-test-os-parameter:
433 make-test-os: '{make-test-os}'
442 - gerrit-trigger-scm:
443 credentials-id: 'jenkins-gerrit-credentials'
444 refspec: '$GERRIT_REFSPEC'
445 choosing-strategy: 'gerrit'
448 - fdio-infra-wrappers:
452 - gerrit-trigger-checkstyle:
459 - ../scripts/setup_executor_env.sh
462 - ../scripts/setup_vpp_ubuntu_docker_test.sh
465 - ../scripts/setup_vpp_ext_deps.sh
468 - ../scripts/vpp/build.sh
472 # [end] VPP-VERIFY JOB TEMPLATE
474 # VPP-DEBUG-VERIFY JOB TEMPLATE
476 name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
478 project-type: freestyle
479 node: 'builder-{os}-prod-{executor-arch}'
483 - lf-infra-properties:
484 build-days-to-keep: "{build-days-to-keep}"
486 # Please keep parameters in alphabetical order
490 - gerrit-refspec-parameter:
491 refspec: '{branch-refspec}'
492 - make-parallel-jobs-parameter:
493 make-parallel-jobs: '{make-parallel-jobs}'
494 - make-test-os-parameter:
495 make-test-os: '{make-test-os}'
504 - gerrit-trigger-scm:
505 credentials-id: 'jenkins-gerrit-credentials'
506 refspec: '$GERRIT_REFSPEC'
507 choosing-strategy: 'gerrit'
510 - fdio-infra-wrappers:
511 build-timeout: '{build-timeout}'
514 - timed: '{periodicity}'
515 - gerrit-trigger-manually-triggered:
516 comment-trigger-value: '{comment-trigger-value}'
523 - ../scripts/setup_executor_env.sh
526 - ../scripts/setup_vpp_ubuntu_docker_test.sh
529 - ../scripts/setup_vpp_ext_deps.sh
532 - ../scripts/vpp/debug-build.sh
536 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
538 # VPP-MERGE JOB TEMPLATE
540 name: 'vpp-merge-{stream}-{os}-{executor-arch}'
542 project-type: freestyle
543 node: 'builder-{os}-prod-{executor-arch}'
546 - lf-infra-properties:
547 build-days-to-keep: "{build-days-to-keep}"
549 # Please keep parameters in alphabetical order
553 - make-parallel-jobs-parameter:
554 make-parallel-jobs: '{make-parallel-jobs}'
555 - make-test-os-parameter:
556 make-test-os: '{make-test-os}'
565 - gerrit-trigger-scm:
566 credentials-id: 'jenkins-gerrit-credentials'
568 choosing-strategy: 'default'
571 - fdio-infra-wrappers:
575 - gerrit-trigger-patch-merged:
580 - config-file-provider:
582 - file-id: '.packagecloud'
583 target: '/root/.packagecloud'
584 - config-file-provider:
586 - file-id: 'packagecloud_api'
587 target: '/root/packagecloud_api'
590 - ../scripts/setup_executor_env.sh
593 - ../scripts/setup_vpp_ubuntu_docker_test.sh
596 - ../scripts/setup_vpp_ext_deps.sh
599 - ../scripts/vpp/build.sh
602 - ../scripts/packagecloud_push.sh
606 # [end] VPP-MERGE JOB TEMPLATE
608 # VPP-GCC-VERIFY JOB TEMPLATE
610 name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
612 project-type: freestyle
613 node: 'builder-{os}-prod-{executor-arch}'
617 - lf-infra-properties:
618 build-days-to-keep: "{build-days-to-keep}"
620 # Please keep parameters in alphabetical order
624 - gerrit-refspec-parameter:
625 refspec: '{branch-refspec}'
626 - make-parallel-jobs-parameter:
627 make-parallel-jobs: '{make-parallel-jobs}'
636 - gerrit-trigger-scm:
637 credentials-id: 'jenkins-gerrit-credentials'
638 refspec: '$GERRIT_REFSPEC'
639 choosing-strategy: 'gerrit'
642 - fdio-infra-wrappers:
646 - gerrit-trigger-checkstyle:
653 - ../scripts/setup_executor_env.sh
656 - ../scripts/setup_vpp_ubuntu_docker_test.sh
659 - ../scripts/setup_vpp_ext_deps.sh
662 - ../scripts/vpp/gcc-build.sh
666 # [end] VPP-GCC-VERIFY JOB TEMPLATE
668 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
670 name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
675 <li>csit-builder-{os}-prod-{executor-arch}
677 <li>testbed architecture
683 project-type: freestyle
684 node: 'csit-builder-{os}-prod-{executor-arch}'
689 - lf-infra-properties:
690 build-days-to-keep: "{build-days-to-keep}"
692 # Please keep parameters in alphabetical order
694 - gerrit-csit-refspec-parameter
695 - gerrit-event-comment-text-parameter
696 - gerrit-event-type-parameter
699 - gerrit-refspec-parameter:
700 refspec: '{branch-refspec}'
701 - make-parallel-jobs-parameter:
702 make-parallel-jobs: '{make-parallel-jobs}'
711 - gerrit-trigger-scm:
712 credentials-id: 'jenkins-gerrit-credentials'
713 refspec: '$GERRIT_REFSPEC'
714 choosing-strategy: 'gerrit'
717 - fdio-infra-wrappers:
721 - 'gerrit-trigger-vpp-csit-devicetest-full':
724 skip-vote: '{skip-vote}'
729 - ../scripts/setup_executor_env.sh
732 - ../scripts/setup_vpp_ubuntu_docker_test.sh
735 - ../scripts/setup_vpp_ext_deps.sh
738 - ../scripts/vpp/csit-device.sh
742 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
744 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
746 name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
751 <li>builder-{os}-prod-{executor-arch}
753 <li>testbed architecture
758 Contrary to csit-vpp job, this also measures the parent performance,
759 and fails if performance regression is detected.
760 See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
763 project-type: freestyle
764 node: 'builder-{os}-prod-{executor-arch}'
769 - lf-infra-properties:
770 build-days-to-keep: "{build-days-to-keep}"
772 # Please keep parameters in alphabetical order
774 - csit-perf-trial-duration-parameter:
775 csit-perf-trial-duration: "10.0"
776 - csit-perf-trial-multiplicity-parameter:
777 csit-perf-trial-multiplicity: "5"
778 - gerrit-csit-refspec-parameter
779 - gerrit-event-comment-text-parameter
780 - gerrit-event-type-parameter
781 - gerrit-refspec-parameter:
782 refspec: '{branch-refspec}'
785 - make-parallel-jobs-parameter:
786 make-parallel-jobs: '{make-parallel-jobs}'
795 - gerrit-trigger-scm:
796 credentials-id: 'jenkins-gerrit-credentials'
797 refspec: '$GERRIT_REFSPEC'
798 choosing-strategy: 'gerrit'
801 - fdio-infra-wrappers-non-activity-timeout:
805 - gerrit-trigger-csit-perftest:
808 trigger-word: 'perftest-{testbed-arch}'
814 - ../scripts/setup_executor_env.sh
817 - ../scripts/setup_vpp_ubuntu_docker_test.sh
820 - ../scripts/setup_vpp_ext_deps.sh
823 - ../scripts/vpp/csit-perf.sh
827 # Can be removed when all CSIT branches use correct archive directory.
838 - ../scripts/vpp/copy_archives.sh
840 output-path: 'archives/csit_current/0/'
843 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
845 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
847 name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
849 project-type: freestyle
850 node: 'builder-{os}-prod-{executor-arch}'
855 - lf-infra-properties:
856 build-days-to-keep: "{build-days-to-keep}"
858 # Please keep parameters in alphabetical order
860 # Not sure whether not failing has any useful usage,
861 # but it does not hurt to have some flexibility for future.
862 - csit-fail-on-crc-mismatch-parameter:
863 fail-on-crc-mismatch: 'True'
864 - gerrit-csit-refspec-parameter
867 - gerrit-refspec-parameter:
868 refspec: '{branch-refspec}'
875 - gerrit-trigger-scm:
876 credentials-id: 'jenkins-gerrit-credentials'
877 refspec: '$GERRIT_REFSPEC'
878 choosing-strategy: 'gerrit'
881 - fdio-infra-wrappers-non-activity-timeout:
885 - gerrit-trigger-checkstyle:
892 - ../scripts/setup_executor_env.sh
895 - ../scripts/setup_vpp_ubuntu_docker_test.sh
898 - ../scripts/vpp/check_crc.sh
899 # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
903 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
904 # [end] JOB TEMPLATE DEFINITIONS