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