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