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