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