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