Add VPP 24.02 branch
[ci-management.git] / jjb / vpp / vpp.yaml
1 # Copyright (c) 2023 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:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
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.
13
14 ---
15 # PROJECT DEFINITIONS
16 #
17 # Please keep projects grouped in this order:
18 #     vpp-x86_64, vpp-aarch64, vpp-csit
19 #
20 # NOTES:
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.
28 # [end] NOTES
29
30 # VPP-CHECKSTYLE-X86_64 PROJECT
31 - project:
32     name: vpp-checkstyle-x86_64
33     jobs:
34       - 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
35     project: 'vpp'
36     os:
37       - ubuntu2204
38     stream:
39       - 'master':
40           branch: 'master'
41           branch-refspec: ''
42       - '2306':
43           branch: 'stable/2306'
44           branch-refspec: ''
45       - '2310':
46           branch: 'stable/2310'
47           branch-refspec: ''
48       - '2402':
49           branch: 'stable/2402'
50           branch-refspec: ''
51     executor-arch: 'x86_64'
52
53 # [end] VPP-CHECKSTYLE-X86_64 PROJECT
54
55 # VPP-X86_64 PROJECT
56 #
57 # NOTE: The list of supported branches for each OS are maintained
58 #       in .../ci-management/docker/scripts/lib_vpp.sh
59 #       The job configuration must be derived from that list, thus
60 #       modifications to both should be made at the same time.
61 #       Since x86_64 is the primary development architecture, this
62 #       project definition should be identical to the docker image
63 #       build scripts.  Other architectures may be a subset.
64 - project:
65     name: vpp-x86_64
66     jobs:
67       - 'vpp-verify-{stream}-{os}-{executor-arch}'
68       - 'vpp-merge-{stream}-{os}-{executor-arch}'
69     project: 'vpp'
70     make-parallel-jobs: '4'
71     stream:
72       - 'master':
73           branch: 'master'
74           branch-refspec: ''
75           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
76           make-test-multiworker-os: 'debian-11'
77       - '2306':
78           branch: 'stable/2306'
79           branch-refspec: ''
80           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
81           make-test-multiworker-os: 'debian-11'
82       - '2310':
83           branch: 'stable/2310'
84           branch-refspec: ''
85           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
86           make-test-multiworker-os: 'debian-11'
87       - '2402':
88           branch: 'stable/2402'
89           branch-refspec: ''
90           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
91           make-test-multiworker-os: 'debian-11'
92     os:
93       - debian11
94       - ubuntu2004
95       - ubuntu2204
96     executor-arch: 'x86_64'
97 # [end] VPP-X86_64 PROJECT
98
99 # VPP-GCC-X86_64 PROJECT
100 - project:
101     name: vpp-gcc-x86_64
102     jobs:
103       - 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
104     project: 'vpp'
105     make-parallel-jobs: '4'
106     os:
107       - ubuntu2204
108     executor-arch: 'x86_64'
109     stream:
110       - 'master':
111           branch: 'master'
112           branch-refspec: ''
113       - '2306':
114           branch: 'stable/2306'
115           branch-refspec: ''
116       - '2310':
117           branch: 'stable/2310'
118           branch-refspec: ''
119       - '2402':
120           branch: 'stable/2402'
121           branch-refspec: ''
122
123 # [end] VPP-GCC-X86_64 PROJECT
124
125 # VPP-DEBUG-X86_64 PROJECT
126 #
127 # Currently a periodic job due to intermittent failures.
128 # Limiting branches to master, since other branches
129 # may not get fixes for the intermittent failures.
130 #
131 - project:
132     name: vpp-debug-x86_64
133     jobs:
134       - 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
135     project: 'vpp'
136     make-parallel-jobs: '4'
137     make-test-os: 'ubuntu-20.04 ubuntu-22.04'
138     comment-trigger-value: 'debug-verify'
139     stream:
140       - 'master':
141           branch: 'master'
142           branch-refspec: ''
143           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
144     os: 'ubuntu2204'
145     executor-arch: 'x86_64'
146
147 # [end] VPP-DEBUG-X86_64 PROJECT
148
149 # VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
150 #
151 # Currently a periodic job due to intermittent failures.
152 # Limiting branches to master, since other branches
153 # may not get fixes for the intermittent failures.
154 #
155 - project:
156     name: vpp-dpdk-rdma-version-mismatch-x86_64
157     jobs:
158       - 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
159     project: 'vpp'
160     make-test-os: 'ubuntu-20.04 ubuntu-22.04'
161     comment-trigger-value: 'dpdk-rdma-version-mismatch'
162     stream:
163       - 'master':
164           branch: 'master'
165           # Once per day at 00:15
166           periodicity: '15 0 * * 0-6'
167     os: 'ubuntu2204'
168     executor-arch: 'x86_64'
169
170 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH-X86_64 PROJECT
171
172 # VPP-COV-X86_64 PROJECT
173 #
174 # A per-patch job to produce code coverage.
175 #
176 # TODO: switch OS to ubuntu-22.04 once the skipping of intermittently failing
177 #       tests are removed
178 #
179 - project:
180     name: vpp-cov-x86_64
181     jobs:
182       - 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
183     project: 'vpp'
184     make-parallel-jobs: '4'
185     make-test-os: 'ubuntu-20.04 ubuntu-22.04'
186     comment-trigger-value: 'gcov-report'
187     stream:
188       - 'master':
189           branch: 'master'
190           branch-refspec: ''
191           # Once per day at 00:25
192           periodicity: '25 0 * * 0-6'
193     os: 'ubuntu2004'
194     executor-arch: 'x86_64'
195
196 # [end] VPP-COV-X86_64 PROJECT
197
198 # VPP-AARCH64 PROJECT
199 #
200 # NOTE: The list of supported branches for each OS are maintained
201 #       in .../ci-management/docker/scripts/lib_vpp.sh
202 #       The job configuration must be derived from that list, thus
203 #       modifications to both should be made at the same time.
204 #       The AARCH64 architecture is in the process of catching up
205 #       with X86_64 in terms of OS coverage.  Thus the jobs are
206 #       a subset of those defined in the docker image build script.
207 - project:
208     name: vpp-aarch64
209     jobs:
210       - 'vpp-verify-{stream}-{os}-{executor-arch}'
211       - 'vpp-merge-{stream}-{os}-{executor-arch}'
212     project: 'vpp'
213     make-parallel-jobs: '4'
214     stream:
215       - 'master':
216           branch: 'master'
217           branch-refspec: ''
218           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
219           make-test-multiworker-os: ''
220       - '2306':
221           branch: 'stable/2306'
222           branch-refspec: ''
223           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
224           make-test-multiworker-os: ''
225       - '2310':
226           branch: 'stable/2310'
227           branch-refspec: ''
228           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
229           make-test-multiworker-os: ''
230       - '2402':
231           branch: 'stable/2402'
232           branch-refspec: ''
233           make-test-os: 'ubuntu-20.04 ubuntu-22.04'
234           make-test-multiworker-os: ''
235     os:
236       - ubuntu2004
237       - ubuntu2204
238     executor-arch: 'aarch64'
239 # [end] VPP-AARCH64 PROJECT
240
241 # VPP-CSIT-VERIFY-DEVICE PROJECT
242 - project:
243     name: vpp-csit-verify-device
244     jobs:
245       - 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}':
246           make-parallel-jobs: '32'
247     project: 'vpp'
248     skip-vote: 'false'
249     stream:
250       - 'master':
251           branch: 'master'
252           branch-refspec: ''
253       - '2306':
254           branch: 'stable/2306'
255           branch-refspec: ''
256       - '2310':
257           branch: 'stable/2310'
258           branch-refspec: ''
259       - '2402':
260           branch: 'stable/2402'
261           branch-refspec: ''
262     testbed-arch:
263       - 1n-spr:
264           os: 'ubuntu2204'
265           executor-arch: 'x86_64'
266           skip-vote: 'true'
267 #      - 1n-tx2:
268 #          os: 'ubuntu2204'
269 #          executor-arch: 'aarch64'
270 #          skip-vote: 'false'
271 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
272
273 # VPP-CSIT-VERIFY-PERF PROJECT
274 - project:
275     name: vpp-csit-verify-perf
276     jobs:
277       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
278       - 'vpp-csit-bisect-{stream}-{os}-{executor-arch}-{testbed-arch}'
279     project: 'vpp'
280     skip-vote: 'false'
281     stream:
282       - 'master':
283           branch: 'master'
284           branch-refspec: ''
285     testbed-arch:
286       - 2n-icx:
287           os: 'ubuntu2204'
288           executor-arch: 'x86_64'
289       - 2n-clx:
290           os: 'ubuntu2204'
291           executor-arch: 'x86_64'
292       - 2n-spr:
293           os: 'ubuntu2204'
294           executor-arch: 'x86_64'
295       - 2n-zn2:
296           os: 'ubuntu2204'
297           executor-arch: 'x86_64'
298       - 3n-icx:
299           os: 'ubuntu2204'
300           executor-arch: 'x86_64'
301       - 3n-tsh:
302           os: 'ubuntu2204'
303           executor-arch: 'aarch64'
304           make-parallel-jobs: '16'
305       - 3n-alt:
306           os: 'ubuntu2204'
307           executor-arch: 'aarch64'
308           make-parallel-jobs: '16'
309       - 2n-tx2:
310           os: 'ubuntu2204'
311           executor-arch: 'aarch64'
312           make-parallel-jobs: '16'
313       - 3n-snr:
314           os: 'ubuntu2204'
315           executor-arch: 'x86_64'
316       - 3n-icxd:
317           os: 'ubuntu2204'
318           executor-arch: 'x86_64'
319       - 3na-spr:
320           os: 'ubuntu2204'
321           executor-arch: 'x86_64'
322       - 3nb-spr:
323           os: 'ubuntu2204'
324           executor-arch: 'x86_64'
325 # [end] VPP-CSIT-VERIFY-PERF PROJECT
326
327 # VPP-CSIT-API-CRC PROJECT
328 #
329 # Only master and LTS branches are supported.
330 #
331 - project:
332     name: vpp-csit-api-crc
333     jobs:
334       - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
335     project: 'vpp'
336     executor-arch: 'x86_64'
337     skip-vote: 'false'
338     stream:
339       - 'master':
340           branch: 'master'
341           branch-refspec: ''
342       - '2306':
343           branch: 'stable/2306'
344           branch-refspec: ''
345       - '2310':
346           branch: 'stable/2310'
347           branch-refspec: ''
348       - '2402':
349           branch: 'stable/2402'
350           branch-refspec: ''
351     os:
352       - 'ubuntu2204'
353 # [end] VPP-CSIT-API-CRC PROJECT
354
355 # LF RELENG VPP PROJECTS
356 - project:
357     name: vpp-info
358     project-name: vpp
359     jobs:
360       - gerrit-info-yaml-verify
361     build-node: centos7-builder-2c-2g
362     project: vpp
363     branch: master
364
365 - project:
366     name: vpp-view
367     views:
368       - project-view
369     project-name: vpp
370 # [end] LF RELENG VPP PROJECTS
371 # [end] PROJECT DEFINITIONS
372
373 # JOB TEMPLATE DEFINITIONS
374 #
375 # Please keep job templates in the same order as they are referenced
376 # in the project definitions above.
377
378 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
379 - job-template:
380     name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
381
382     project-type: freestyle
383     node: 'builder-{os}-prod-{executor-arch}'
384     concurrent: true
385
386     properties:
387       - lf-infra-properties:
388           build-days-to-keep: "{build-days-to-keep}"
389
390     # Please keep parameters in alphabetical order
391     parameters:
392       - gerrit-parameter:
393           branch: '{branch}'
394       - gerrit-refspec-parameter:
395           refspec: '{branch-refspec}'
396       - os-parameter:
397           os: '{os}'
398       - project-parameter:
399           project: '{project}'
400
401     scm:
402       - gerrit-trigger-scm:
403           credentials-id: 'jenkins-gerrit-credentials'
404           refspec: '$GERRIT_REFSPEC'
405           choosing-strategy: 'gerrit'
406
407     wrappers:
408       - fdio-infra-wrappers:
409           build-timeout: '{build-timeout}'
410       - credentials-binding:
411           - text:
412               credential-id: VppApiCompatNotify
413               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
414
415     triggers:
416       - gerrit:
417           server-name: 'Primary'
418           trigger-on:
419             - patchset-created-event:
420                 exclude-drafts: 'true'
421                 exclude-trivial-rebase: 'false'
422                 exclude-no-code-change: 'false'
423             - draft-published-event
424             - comment-added-contains-event:
425                 comment-contains-value: 'checkstylecheck'
426             - comment-added-contains-event:
427                 comment-contains-value: 'recheck'
428             - comment-added-contains-event:
429                 comment-contains-value: 'reverify'
430             # Following two are to cover missing functions of drafts
431             # going to review status
432             - comment-added-contains-event:
433                 comment-contains-value: 'runtest'
434             - comment-added-contains-event:
435                 comment-contains-value: 'This change is ready for review'
436           projects:
437             - project-compare-type: 'ANT'
438               project-pattern: '{project}'
439               branches:
440                 - branch-compare-type: 'ANT'
441                   branch-pattern: '**/{branch}'
442               file-paths:
443                 - compare-type: REG_EXP
444                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
445               forbidden-file-paths:
446                 - compare-type: REG_EXP
447                   pattern: .*extras\/emacs\/.*
448               disable-strict-forbidden-file-verification: 'true'
449           override-votes: true
450           gerrit-build-notbuilt-verified-value: 0
451           gerrit-build-successful-verified-value: 1
452           # yamllint disable-line rule:line-length
453           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
454           # yamllint disable-line rule:line-length
455           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
456           successful-message: 'checkstyle_success'
457           skip-vote:
458             successful: true
459             failed: false
460             unstable: false
461             notbuilt: false
462
463     builders:
464       - shell:
465           !include-raw-escape:
466           - ../scripts/setup_executor_env.sh
467       - shell:
468           !include-raw-escape:
469           - ../scripts/vpp/checkstyle.sh
470       - shell:
471           !include-raw-escape:
472           - ../scripts/vpp/test-checkstyle.sh
473       - shell:
474           !include-raw-escape:
475           - ../scripts/vpp/api-checkstyle.sh
476       - shell:
477           !include-raw-escape:
478           - ../scripts/vpp/commitmsg.sh
479       - shell:
480           !include-raw-escape:
481           - ../scripts/vpp/docs_spell.sh
482
483     publishers:
484       - fdio-infra-publish
485
486 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
487
488 # VPP-VERIFY JOB TEMPLATE
489 - job-template:
490     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
491
492     project-type: freestyle
493     node: 'builder-{os}-prod-{executor-arch}'
494     concurrent: true
495
496     properties:
497       - lf-infra-properties:
498           build-days-to-keep: "{build-days-to-keep}"
499
500     # Please keep parameters in alphabetical order
501     parameters:
502       - gerrit-parameter:
503           branch: '{branch}'
504       - gerrit-refspec-parameter:
505           refspec: '{branch-refspec}'
506       - make-parallel-jobs-parameter:
507           make-parallel-jobs: '{make-parallel-jobs}'
508       - make-test-os-parameter:
509           make-test-os: '{make-test-os}'
510       - make-test-multiworker-os-parameter:
511           make-test-multiworker-os: '{make-test-multiworker-os}'
512       - os-parameter:
513           os: '{os}'
514       - project-parameter:
515           project: '{project}'
516       - stream-parameter:
517           stream: '{stream}'
518
519     scm:
520       - gerrit-trigger-scm:
521           credentials-id: 'jenkins-gerrit-credentials'
522           refspec: '$GERRIT_REFSPEC'
523           choosing-strategy: 'gerrit'
524
525     wrappers:
526       - fdio-infra-wrappers:
527           build-timeout: 120
528
529     triggers:
530       - gerrit-trigger-checkstyle:
531           name: '{project}'
532           branch: '{branch}'
533
534     builders:
535       - shell:
536           !include-raw-escape:
537           - ../scripts/setup_executor_env.sh
538       - shell:
539           !include-raw-escape:
540           - ../scripts/setup_vpp_ubuntu_docker_test.sh
541       - shell:
542           !include-raw-escape:
543           - ../scripts/setup_vpp_ext_deps.sh
544       - shell:
545           !include-raw-escape:
546           - ../scripts/vpp/build.sh
547
548     publishers:
549       - fdio-infra-publish
550 # [end] VPP-VERIFY JOB TEMPLATE
551
552 # VPP-DEBUG-VERIFY JOB TEMPLATE
553 - job-template:
554     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
555
556     project-type: freestyle
557     node: 'builder-{os}-prod-{executor-arch}'
558     concurrent: true
559
560     properties:
561       - lf-infra-properties:
562           build-days-to-keep: "{build-days-to-keep}"
563
564     # Please keep parameters in alphabetical order
565     parameters:
566       - gerrit-parameter:
567           branch: '{branch}'
568       - gerrit-refspec-parameter:
569           refspec: '{branch-refspec}'
570       - make-parallel-jobs-parameter:
571           make-parallel-jobs: '{make-parallel-jobs}'
572       - make-test-os-parameter:
573           make-test-os: '{make-test-os}'
574       - os-parameter:
575           os: '{os}'
576       - project-parameter:
577           project: '{project}'
578       - stream-parameter:
579           stream: '{stream}'
580
581     scm:
582       - gerrit-trigger-scm:
583           credentials-id: 'jenkins-gerrit-credentials'
584           refspec: '$GERRIT_REFSPEC'
585           choosing-strategy: 'gerrit'
586
587     wrappers:
588       - fdio-infra-wrappers:
589           build-timeout: '{build-timeout}'
590
591     triggers:
592       - gerrit-trigger-checkstyle-nonvoting:
593           name: '{project}'
594           branch: '{branch}'
595
596     builders:
597       - shell:
598           !include-raw-escape:
599           - ../scripts/setup_executor_env.sh
600       - shell:
601           !include-raw-escape:
602           - ../scripts/setup_vpp_ubuntu_docker_test.sh
603       - shell:
604           !include-raw-escape:
605           - ../scripts/setup_vpp_ext_deps.sh
606       - shell:
607           !include-raw-escape:
608           - ../scripts/vpp/debug-build.sh
609
610     publishers:
611       - fdio-infra-publish
612 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
613
614 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
615 - job-template:
616     name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
617
618     project-type: freestyle
619     node: 'builder-{os}-prod-{executor-arch}'
620     concurrent: true
621
622     properties:
623       - lf-infra-properties:
624           build-days-to-keep: "{build-days-to-keep}"
625
626     # Please keep parameters in alphabetical order
627     parameters:
628       - gerrit-parameter:
629           branch: '{branch}'
630       - make-parallel-jobs-parameter:
631           make-parallel-jobs: '{make-parallel-jobs}'
632       - make-test-os-parameter:
633           make-test-os: '{make-test-os}'
634       - os-parameter:
635           os: '{os}'
636       - project-parameter:
637           project: '{project}'
638       - stream-parameter:
639           stream: '{stream}'
640
641     scm:
642       - gerrit-trigger-scm:
643           credentials-id: 'jenkins-gerrit-credentials'
644           refspec: ''
645           choosing-strategy: 'default'
646
647     wrappers:
648       - fdio-infra-wrappers:
649           build-timeout: '{build-timeout}'
650
651     triggers:
652       - timed: '{periodicity}'
653       - gerrit-trigger-manually-triggered:
654           comment-trigger-value: '{comment-trigger-value}'
655           name: '{project}'
656           branch: '{branch}'
657
658     builders:
659       - shell:
660           !include-raw-escape:
661           - ../scripts/setup_executor_env.sh
662       - shell:
663           !include-raw-escape:
664           - ../scripts/setup_vpp_ubuntu_docker_test.sh
665       - shell:
666           !include-raw-escape:
667           - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
668
669     publishers:
670       - vpp-dpdk-rdma-version-mismatch:
671           branch: '{branch}'
672       - fdio-infra-publish
673 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
674
675 # VPP-MERGE JOB TEMPLATE
676 - job-template:
677     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
678
679     project-type: freestyle
680     node: 'builder-{os}-prod-{executor-arch}'
681
682     properties:
683       - lf-infra-properties:
684           build-days-to-keep: "{build-days-to-keep}"
685
686     # Please keep parameters in alphabetical order
687     parameters:
688       - gerrit-parameter:
689           branch: '{branch}'
690       - make-parallel-jobs-parameter:
691           make-parallel-jobs: '{make-parallel-jobs}'
692       - make-test-os-parameter:
693           make-test-os: '{make-test-os}'
694       - make-test-multiworker-os-parameter:
695           make-test-multiworker-os: '{make-test-multiworker-os}'
696       - os-parameter:
697           os: '{os}'
698       - project-parameter:
699           project: '{project}'
700       - stream-parameter:
701           stream: '{stream}'
702
703     scm:
704       - gerrit-trigger-scm:
705           credentials-id: 'jenkins-gerrit-credentials'
706           refspec: ''
707           choosing-strategy: 'default'
708
709     wrappers:
710       - fdio-infra-wrappers:
711           build-timeout: 120
712
713     triggers:
714       - gerrit-trigger-patch-merged:
715           name: '{project}'
716           branch: '{branch}'
717
718     builders:
719       - config-file-provider:
720           files:
721             - file-id: '.packagecloud'
722               target: '/root/.packagecloud'
723       - config-file-provider:
724           files:
725             - file-id: 'packagecloud_api'
726               target: '/root/packagecloud_api'
727       - shell:
728           !include-raw-escape:
729           - ../scripts/setup_executor_env.sh
730       - shell:
731           !include-raw-escape:
732           - ../scripts/vpp/commitmsg.sh
733       - shell:
734           !include-raw-escape:
735           - ../scripts/setup_vpp_ubuntu_docker_test.sh
736       - shell:
737           !include-raw-escape:
738           - ../scripts/setup_vpp_ext_deps.sh
739       - shell:
740           !include-raw-escape:
741           - ../scripts/vpp/build.sh
742       - shell:
743           !include-raw-escape:
744           - ../scripts/packagecloud_push.sh
745
746     publishers:
747       - fdio-infra-publish
748 # [end] VPP-MERGE JOB TEMPLATE
749
750 # VPP-GCC-VERIFY JOB TEMPLATE
751 - job-template:
752     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
753
754     project-type: freestyle
755     node: 'builder-{os}-prod-{executor-arch}'
756     concurrent: true
757
758     properties:
759       - lf-infra-properties:
760           build-days-to-keep: "{build-days-to-keep}"
761
762     # Please keep parameters in alphabetical order
763     parameters:
764       - gerrit-parameter:
765           branch: '{branch}'
766       - gerrit-refspec-parameter:
767           refspec: '{branch-refspec}'
768       - make-parallel-jobs-parameter:
769           make-parallel-jobs: '{make-parallel-jobs}'
770       - os-parameter:
771           os: '{os}'
772       - project-parameter:
773           project: '{project}'
774       - stream-parameter:
775           stream: '{stream}'
776
777     scm:
778       - gerrit-trigger-scm:
779           credentials-id: 'jenkins-gerrit-credentials'
780           refspec: '$GERRIT_REFSPEC'
781           choosing-strategy: 'gerrit'
782
783     wrappers:
784       - fdio-infra-wrappers:
785           build-timeout: 120
786
787     triggers:
788       - gerrit-trigger-checkstyle:
789           name: '{project}'
790           branch: '{branch}'
791
792     builders:
793       - shell:
794           !include-raw-escape:
795           - ../scripts/setup_executor_env.sh
796       - shell:
797           !include-raw-escape:
798           - ../scripts/setup_vpp_ubuntu_docker_test.sh
799       - shell:
800           !include-raw-escape:
801           - ../scripts/setup_vpp_ext_deps.sh
802       - shell:
803           !include-raw-escape:
804           - ../scripts/vpp/gcc-build.sh
805
806     publishers:
807       - fdio-infra-publish
808 # [end] VPP-GCC-VERIFY JOB TEMPLATE
809
810 # VPP-COV-VERIFY JOB TEMPLATE
811 - job-template:
812     name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
813
814     project-type: freestyle
815     node: 'builder-{os}-prod-{executor-arch}'
816     concurrent: true
817
818     properties:
819       - lf-infra-properties:
820           build-days-to-keep: "{build-days-to-keep}"
821
822     # Please keep parameters in alphabetical order
823     parameters:
824       - gerrit-parameter:
825           branch: '{branch}'
826       - make-parallel-jobs-parameter:
827           make-parallel-jobs: '{make-parallel-jobs}'
828       - make-test-os-parameter:
829           make-test-os: '{make-test-os}'
830       - os-parameter:
831           os: '{os}'
832       - project-parameter:
833           project: '{project}'
834       - stream-parameter:
835           stream: '{stream}'
836
837     scm:
838       - gerrit-trigger-scm:
839           credentials-id: 'jenkins-gerrit-credentials'
840           refspec: ''
841           choosing-strategy: 'default'
842
843     wrappers:
844       - fdio-infra-wrappers:
845           build-timeout: '{build-timeout}'
846
847     triggers:
848       - timed: '{periodicity}'
849       - gerrit-trigger-manually-triggered:
850           comment-trigger-value: '{comment-trigger-value}'
851           name: '{project}'
852           branch: '{branch}'
853
854     builders:
855       - shell:
856           !include-raw-escape:
857           - ../scripts/setup_executor_env.sh
858       - shell:
859           !include-raw-escape:
860           - ../scripts/setup_vpp_ubuntu_docker_test.sh
861       - shell:
862           !include-raw-escape:
863           - ../scripts/setup_vpp_ext_deps.sh
864       - shell:
865           !include-raw-escape:
866           - ../scripts/vpp/cov-build.sh
867
868     publishers:
869       - fdio-infra-publish-cov-7day
870       - fdio-infra-publish
871 # [end] VPP-COV-VERIFY JOB TEMPLATE
872
873 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
874 - job-template:
875     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
876     description: |
877       <ul>
878           <li>executor
879               <ul>
880                   <li>csit-builder-{os}-prod-{executor-arch}
881               </ul>
882           <li>testbed architecture
883               <ul>
884                   <li>{testbed-arch}
885               </ul>
886       </ul>
887
888     project-type: freestyle
889     node: 'csit-builder-{os}-prod-{executor-arch}'
890     concurrent: true
891     latest-only: false
892
893     properties:
894       - lf-infra-properties:
895           build-days-to-keep: "{build-days-to-keep}"
896
897     # Please keep parameters in alphabetical order
898     parameters:
899       - gerrit-csit-refspec-parameter
900       - gerrit-event-comment-text-parameter
901       - gerrit-event-type-parameter
902       - gerrit-parameter:
903           branch: '{branch}'
904       - gerrit-refspec-parameter:
905           refspec: '{branch-refspec}'
906       - make-parallel-jobs-parameter:
907           make-parallel-jobs: '{make-parallel-jobs}'
908       - os-parameter:
909           os: '{os}'
910       - project-parameter:
911           project: '{project}'
912       - stream-parameter:
913           stream: '{stream}'
914
915     scm:
916       - gerrit-trigger-scm:
917           credentials-id: 'jenkins-gerrit-credentials'
918           refspec: '$GERRIT_REFSPEC'
919           choosing-strategy: 'gerrit'
920
921     wrappers:
922       - fdio-infra-wrappers:
923           build-timeout: '90'
924
925     triggers:
926       - 'gerrit-trigger-vpp-csit-devicetest-full':
927           name: '{project}'
928           branch: '{branch}'
929           skip-vote: '{skip-vote}'
930
931     builders:
932       - shell:
933           !include-raw-escape:
934           - ../scripts/setup_executor_env.sh
935       - shell:
936           !include-raw-escape:
937           - ../scripts/setup_vpp_ubuntu_docker_test.sh
938       - shell:
939           !include-raw-escape:
940           - ../scripts/setup_vpp_ext_deps.sh
941       - shell:
942           !include-raw-escape:
943           - ../scripts/vpp/csit-device.sh
944
945     publishers:
946       - fdio-infra-publish
947 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
948
949 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
950 - job-template:
951     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
952     description: |
953       <ul>
954           <li>executor
955               <ul>
956                   <li>builder-{os}-prod-{executor-arch}
957               </ul>
958           <li>testbed architecture
959               <ul>
960                   <li>{testbed-arch}
961               </ul>
962           <li>Objective
963           Contrary to csit-vpp job, this also measures the parent performance,
964           and fails if performance regression is detected.
965           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
966       </ul>
967
968     project-type: freestyle
969     node: 'builder-{os}-prod-{executor-arch}'
970     concurrent: true
971     latest-only: false
972
973     properties:
974       - lf-infra-properties:
975           build-days-to-keep: "{build-days-to-keep}"
976
977     # Please keep parameters in alphabetical order
978     parameters:
979       - csit-perf-trial-duration-parameter:
980           csit-perf-trial-duration: "10.0"
981       - csit-perf-trial-multiplicity-parameter:
982           csit-perf-trial-multiplicity: "5"
983       - gerrit-csit-refspec-parameter
984       - gerrit-event-comment-text-parameter
985       - gerrit-event-type-parameter
986       - gerrit-refspec-parameter:
987           refspec: '{branch-refspec}'
988       - gerrit-parameter:
989           branch: '{branch}'
990       - make-parallel-jobs-parameter:
991           make-parallel-jobs: '{make-parallel-jobs}'
992       - os-parameter:
993           os: '{os}'
994       - project-parameter:
995           project: '{project}'
996       - stream-parameter:
997           stream: '{stream}'
998
999     scm:
1000       - gerrit-trigger-scm:
1001           credentials-id: 'jenkins-gerrit-credentials'
1002           refspec: '$GERRIT_REFSPEC'
1003           choosing-strategy: 'gerrit'
1004
1005     wrappers:
1006       - fdio-infra-wrappers-non-activity-timeout:
1007           build-timeout: 300
1008
1009     triggers:
1010       - gerrit-trigger-csit-perftest:
1011           project: '{project}'
1012           branch: '{branch}'
1013           trigger-word: 'perftest-{testbed-arch}'
1014           skip-vote: true
1015
1016     builders:
1017       - shell:
1018           !include-raw-escape:
1019           - ../scripts/setup_executor_env.sh
1020       - shell:
1021           !include-raw-escape:
1022           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1023       - shell:
1024           !include-raw-escape:
1025           - ../scripts/setup_vpp_ext_deps.sh
1026       - shell:
1027           !include-raw-escape:
1028           - ../scripts/vpp/csit-perf.sh
1029
1030     publishers:
1031       - postbuildscript:
1032           # Can be removed when all CSIT branches use correct archive directory.
1033           builders:
1034             - build-on:
1035                 - ABORTED
1036                 - FAILURE
1037                 - NOT_BUILT
1038                 - SUCCESS
1039                 - UNSTABLE
1040               build-steps:
1041                 - shell:
1042                     !include-raw-escape:
1043                     - ../scripts/vpp/copy_archives.sh
1044       - fdio-infra-publish
1045 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1046
1047 # VPP-CSIT-BISECT JOB TEMPLATE
1048 - job-template:
1049     name: 'vpp-csit-bisect-{stream}-{os}-{executor-arch}-{testbed-arch}'
1050     description: |
1051       <ul>
1052           <li>executor
1053               <ul>
1054                   <li>builder-{os}-prod-{executor-arch}
1055               </ul>
1056           <li>testbed architecture
1057               <ul>
1058                   <li>{testbed-arch}
1059               </ul>
1060           <li>Objective
1061               <ul>
1062                   <li>Find a cause of VPP performance jump among VPP commits.
1063               </ul>
1064       </ul>
1065
1066     project-type: freestyle
1067     node: 'builder-{os}-prod-{executor-arch}'
1068     concurrent: true
1069     latest-only: false
1070
1071     properties:
1072       - lf-infra-properties:
1073           build-days-to-keep: "{build-days-to-keep}"
1074
1075     # Please keep parameters in alphabetical order
1076     parameters:
1077       - csit-perf-trial-duration-parameter:
1078           csit-perf-trial-duration: "1.0"
1079       - csit-perf-trial-multiplicity-parameter:
1080           csit-perf-trial-multiplicity: "60"
1081       - gerrit-csit-refspec-parameter
1082       - gerrit-event-comment-text-parameter
1083       - gerrit-event-type-parameter
1084       - gerrit-refspec-parameter:
1085           refspec: '{branch-refspec}'
1086       - gerrit-parameter:
1087           branch: '{branch}'
1088       - make-parallel-jobs-parameter:
1089           make-parallel-jobs: '{make-parallel-jobs}'
1090       - os-parameter:
1091           os: '{os}'
1092       - project-parameter:
1093           project: '{project}'
1094       - stream-parameter:
1095           stream: '{stream}'
1096
1097     scm:
1098       - gerrit-trigger-scm:
1099           credentials-id: 'jenkins-gerrit-credentials'
1100           refspec: '$GERRIT_REFSPEC'
1101           choosing-strategy: 'gerrit'
1102
1103     wrappers:
1104       - fdio-infra-wrappers-non-activity-timeout:
1105           build-timeout: 300
1106
1107     triggers:
1108       - gerrit-trigger-csit-perftest:
1109           project: '{project}'
1110           branch: '{branch}'
1111           trigger-word: 'bisecttest-{testbed-arch}'
1112           skip-vote: true
1113
1114     builders:
1115       - shell:
1116           !include-raw-escape:
1117           - ../scripts/setup_executor_env.sh
1118       - shell:
1119           !include-raw-escape:
1120           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1121       - shell:
1122           !include-raw-escape:
1123           - ../scripts/setup_vpp_ext_deps.sh
1124       - shell:
1125           !include-raw-escape:
1126           - ../scripts/vpp/csit-bisect.sh
1127
1128     publishers:
1129       - postbuildscript:
1130           # Can be removed when all CSIT branches use correct archive directory.
1131           builders:
1132             - build-on:
1133                 - ABORTED
1134                 - FAILURE
1135                 - NOT_BUILT
1136                 - SUCCESS
1137                 - UNSTABLE
1138               build-steps:
1139                 - shell:
1140                     !include-raw-escape:
1141                     - ../scripts/vpp/copy_archives.sh
1142       - fdio-infra-publish
1143 # [end] VPP-CSIT-BISECT JOB TEMPLATE
1144
1145 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1146 - job-template:
1147     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1148
1149     project-type: freestyle
1150     node: 'builder-{os}-prod-{executor-arch}'
1151     concurrent: true
1152     latest-only: false
1153
1154     properties:
1155       - lf-infra-properties:
1156           build-days-to-keep: "{build-days-to-keep}"
1157
1158     # Please keep parameters in alphabetical order
1159     parameters:
1160       # Not sure whether not failing has any useful usage,
1161       # but it does not hurt to have some flexibility for future.
1162       - csit-fail-on-crc-mismatch-parameter:
1163           fail-on-crc-mismatch: 'True'
1164       - gerrit-csit-refspec-parameter
1165       - gerrit-parameter:
1166           branch: '{branch}'
1167       - gerrit-refspec-parameter:
1168           refspec: '{branch-refspec}'
1169       - project-parameter:
1170           project: '{project}'
1171       - stream-parameter:
1172           stream: '{stream}'
1173
1174     scm:
1175       - gerrit-trigger-scm:
1176           credentials-id: 'jenkins-gerrit-credentials'
1177           refspec: '$GERRIT_REFSPEC'
1178           choosing-strategy: 'gerrit'
1179
1180     wrappers:
1181       - fdio-infra-wrappers-non-activity-timeout:
1182           build-timeout: 300
1183
1184     triggers:
1185       - gerrit-trigger-checkstyle:
1186           name: '{project}'
1187           branch: '{branch}'
1188
1189     builders:
1190       - shell:
1191           !include-raw-escape:
1192           - ../scripts/setup_executor_env.sh
1193       - shell:
1194           !include-raw-escape:
1195           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1196       - shell:
1197           !include-raw-escape:
1198           - ../scripts/vpp/check_crc.sh
1199     # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1200
1201     publishers:
1202       - fdio-infra-publish
1203 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1204 # [end] JOB TEMPLATE DEFINITIONS
1205
1206 - project:
1207     name: vpp-release
1208     project: vpp
1209     project-name: vpp
1210     build-node: centos8-builder-2c-2g
1211     mvn-settings: vpp-settings
1212     jobs:
1213       - "gerrit-packagecloud-release-verify"
1214
1215 - project:
1216     name: vpp-packagecloud-release
1217     project: vpp
1218     project-name: vpp
1219     build-node: centos8-builder-2c-2g
1220     mvn-settings: vpp-settings
1221     jobs:
1222       - "gerrit-packagecloud-release-merge"
1223       - "{project-name}-gerrit-release-jobs"