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