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