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