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