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