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