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