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