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