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