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