vpp 23.06 post release clean up.
[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       - 1n-tx2:
270           os: 'ubuntu2204'
271           executor-arch: 'aarch64'
272           skip-vote: 'false'
273 # [end] VPP-CSIT-VERIFY-DEVICE PROJECT
274
275 # VPP-CSIT-VERIFY-PERF PROJECT
276 - project:
277     name: vpp-csit-verify-perf
278     jobs:
279       - 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
280     project: 'vpp'
281     skip-vote: 'false'
282     stream:
283       - 'master':
284           branch: 'master'
285           branch-refspec: ''
286     testbed-arch:
287       - 2n-icx:
288           os: 'ubuntu2204'
289           executor-arch: 'x86_64'
290       - 2n-clx:
291           os: 'ubuntu2204'
292           executor-arch: 'x86_64'
293       - 2n-spr:
294           os: 'ubuntu2204'
295           executor-arch: 'x86_64'
296       - 2n-zn2:
297           os: 'ubuntu2204'
298           executor-arch: 'x86_64'
299       - 3n-icx:
300           os: 'ubuntu2204'
301           executor-arch: 'x86_64'
302       - 3n-tsh:
303           os: 'ubuntu2204'
304           executor-arch: 'aarch64'
305           make-parallel-jobs: '16'
306       - 3n-alt:
307           os: 'ubuntu2204'
308           executor-arch: 'aarch64'
309           make-parallel-jobs: '16'
310       - 2n-tx2:
311           os: 'ubuntu2204'
312           executor-arch: 'aarch64'
313           make-parallel-jobs: '16'
314       - 3n-snr:
315           os: 'ubuntu2204'
316           executor-arch: 'x86_64'
317 # [end] VPP-CSIT-VERIFY-PERF PROJECT
318
319 # VPP-CSIT-API-CRC PROJECT
320 #
321 # Only master and LTS branches are supported.
322 #
323 - project:
324     name: vpp-csit-api-crc
325     jobs:
326       - 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
327     project: 'vpp'
328     executor-arch: 'x86_64'
329     skip-vote: 'false'
330     stream:
331       - 'master':
332           branch: 'master'
333           branch-refspec: ''
334       - '2302':
335           branch: 'stable/2302'
336           branch-refspec: ''
337       - '2306':
338           branch: 'stable/2306'
339           branch-refspec: ''
340     os:
341       - 'ubuntu2204'
342 # [end] VPP-CSIT-API-CRC PROJECT
343
344 # LF RELENG VPP PROJECTS
345 - project:
346     name: vpp-info
347     project-name: vpp
348     jobs:
349       - gerrit-info-yaml-verify
350     build-node: centos7-builder-2c-2g
351     project: vpp
352     branch: master
353
354 - project:
355     name: vpp-view
356     views:
357       - project-view
358     project-name: vpp
359 # [end] LF RELENG VPP PROJECTS
360 # [end] PROJECT DEFINITIONS
361
362 # JOB TEMPLATE DEFINITIONS
363 #
364 # Please keep job templates in the same order as they are referenced
365 # in the project definitions above.
366
367 # VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
368 - job-template:
369     name: 'vpp-checkstyle-verify-{stream}-{os}-{executor-arch}'
370
371     project-type: freestyle
372     node: 'builder-{os}-prod-{executor-arch}'
373     concurrent: true
374
375     properties:
376       - lf-infra-properties:
377           build-days-to-keep: "{build-days-to-keep}"
378
379     # Please keep parameters in alphabetical order
380     parameters:
381       - gerrit-parameter:
382           branch: '{branch}'
383       - gerrit-refspec-parameter:
384           refspec: '{branch-refspec}'
385       - os-parameter:
386           os: '{os}'
387       - project-parameter:
388           project: '{project}'
389
390     scm:
391       - gerrit-trigger-scm:
392           credentials-id: 'jenkins-gerrit-credentials'
393           refspec: '$GERRIT_REFSPEC'
394           choosing-strategy: 'gerrit'
395
396     wrappers:
397       - fdio-infra-wrappers:
398           build-timeout: '{build-timeout}'
399       - credentials-binding:
400           - text:
401               credential-id: VppApiCompatNotify
402               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
403
404     triggers:
405       - gerrit:
406           server-name: 'Primary'
407           trigger-on:
408             - patchset-created-event:
409                 exclude-drafts: 'true'
410                 exclude-trivial-rebase: 'false'
411                 exclude-no-code-change: 'false'
412             - draft-published-event
413             - comment-added-contains-event:
414                 comment-contains-value: 'checkstylecheck'
415             - comment-added-contains-event:
416                 comment-contains-value: 'recheck'
417             - comment-added-contains-event:
418                 comment-contains-value: 'reverify'
419             # Following two are to cover missing functions of drafts
420             # going to review status
421             - comment-added-contains-event:
422                 comment-contains-value: 'runtest'
423             - comment-added-contains-event:
424                 comment-contains-value: 'This change is ready for review'
425           projects:
426             - project-compare-type: 'ANT'
427               project-pattern: '{project}'
428               branches:
429                 - branch-compare-type: 'ANT'
430                   branch-pattern: '**/{branch}'
431               file-paths:
432                 - compare-type: REG_EXP
433                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
434               forbidden-file-paths:
435                 - compare-type: REG_EXP
436                   pattern: .*extras\/emacs\/.*
437               disable-strict-forbidden-file-verification: 'true'
438           override-votes: true
439           gerrit-build-notbuilt-verified-value: 0
440           gerrit-build-successful-verified-value: 1
441           # yamllint disable-line rule:line-length
442           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
443           # yamllint disable-line rule:line-length
444           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
445           successful-message: 'checkstyle_success'
446           skip-vote:
447             successful: true
448             failed: false
449             unstable: false
450             notbuilt: false
451
452     builders:
453       - shell:
454           !include-raw-escape:
455           - ../scripts/setup_executor_env.sh
456       - shell:
457           !include-raw-escape:
458           - ../scripts/vpp/checkstyle.sh
459       - shell:
460           !include-raw-escape:
461           - ../scripts/vpp/test-checkstyle.sh
462       - shell:
463           !include-raw-escape:
464           - ../scripts/vpp/api-checkstyle.sh
465       - shell:
466           !include-raw-escape:
467           - ../scripts/vpp/commitmsg.sh
468       - shell:
469           !include-raw-escape:
470           - ../scripts/vpp/docs_spell.sh
471
472     publishers:
473       - fdio-infra-publish
474
475 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
476
477 # VPP-VERIFY JOB TEMPLATE
478 - job-template:
479     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
480
481     project-type: freestyle
482     node: 'builder-{os}-prod-{executor-arch}'
483     concurrent: true
484
485     properties:
486       - lf-infra-properties:
487           build-days-to-keep: "{build-days-to-keep}"
488
489     # Please keep parameters in alphabetical order
490     parameters:
491       - gerrit-parameter:
492           branch: '{branch}'
493       - gerrit-refspec-parameter:
494           refspec: '{branch-refspec}'
495       - make-parallel-jobs-parameter:
496           make-parallel-jobs: '{make-parallel-jobs}'
497       - make-test-os-parameter:
498           make-test-os: '{make-test-os}'
499       - make-test-multiworker-os-parameter:
500           make-test-multiworker-os: '{make-test-multiworker-os}'
501       - os-parameter:
502           os: '{os}'
503       - project-parameter:
504           project: '{project}'
505       - stream-parameter:
506           stream: '{stream}'
507
508     scm:
509       - gerrit-trigger-scm:
510           credentials-id: 'jenkins-gerrit-credentials'
511           refspec: '$GERRIT_REFSPEC'
512           choosing-strategy: 'gerrit'
513
514     wrappers:
515       - fdio-infra-wrappers:
516           build-timeout: 120
517
518     triggers:
519       - gerrit-trigger-checkstyle:
520           name: '{project}'
521           branch: '{branch}'
522
523     builders:
524       - shell:
525           !include-raw-escape:
526           - ../scripts/setup_executor_env.sh
527       - shell:
528           !include-raw-escape:
529           - ../scripts/setup_vpp_ubuntu_docker_test.sh
530       - shell:
531           !include-raw-escape:
532           - ../scripts/setup_vpp_ext_deps.sh
533       - shell:
534           !include-raw-escape:
535           - ../scripts/vpp/build.sh
536
537     publishers:
538       - fdio-infra-publish
539 # [end] VPP-VERIFY JOB TEMPLATE
540
541 # VPP-DEBUG-VERIFY JOB TEMPLATE
542 - job-template:
543     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
544
545     project-type: freestyle
546     node: 'builder-{os}-prod-{executor-arch}'
547     concurrent: true
548
549     properties:
550       - lf-infra-properties:
551           build-days-to-keep: "{build-days-to-keep}"
552
553     # Please keep parameters in alphabetical order
554     parameters:
555       - gerrit-parameter:
556           branch: '{branch}'
557       - gerrit-refspec-parameter:
558           refspec: '{branch-refspec}'
559       - make-parallel-jobs-parameter:
560           make-parallel-jobs: '{make-parallel-jobs}'
561       - make-test-os-parameter:
562           make-test-os: '{make-test-os}'
563       - os-parameter:
564           os: '{os}'
565       - project-parameter:
566           project: '{project}'
567       - stream-parameter:
568           stream: '{stream}'
569
570     scm:
571       - gerrit-trigger-scm:
572           credentials-id: 'jenkins-gerrit-credentials'
573           refspec: '$GERRIT_REFSPEC'
574           choosing-strategy: 'gerrit'
575
576     wrappers:
577       - fdio-infra-wrappers:
578           build-timeout: '{build-timeout}'
579
580     triggers:
581       - gerrit-trigger-checkstyle-nonvoting:
582           name: '{project}'
583           branch: '{branch}'
584
585     builders:
586       - shell:
587           !include-raw-escape:
588           - ../scripts/setup_executor_env.sh
589       - shell:
590           !include-raw-escape:
591           - ../scripts/setup_vpp_ubuntu_docker_test.sh
592       - shell:
593           !include-raw-escape:
594           - ../scripts/setup_vpp_ext_deps.sh
595       - shell:
596           !include-raw-escape:
597           - ../scripts/vpp/debug-build.sh
598
599     publishers:
600       - fdio-infra-publish
601 # [end] VPP-DEBUG-VERIFY JOB TEMPLATE
602
603 # VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
604 - job-template:
605     name: 'vpp-dpdk-rdma-version-mismatch-{stream}-{os}-{executor-arch}'
606
607     project-type: freestyle
608     node: 'builder-{os}-prod-{executor-arch}'
609     concurrent: true
610
611     properties:
612       - lf-infra-properties:
613           build-days-to-keep: "{build-days-to-keep}"
614
615     # Please keep parameters in alphabetical order
616     parameters:
617       - gerrit-parameter:
618           branch: '{branch}'
619       - make-parallel-jobs-parameter:
620           make-parallel-jobs: '{make-parallel-jobs}'
621       - make-test-os-parameter:
622           make-test-os: '{make-test-os}'
623       - os-parameter:
624           os: '{os}'
625       - project-parameter:
626           project: '{project}'
627       - stream-parameter:
628           stream: '{stream}'
629
630     scm:
631       - gerrit-trigger-scm:
632           credentials-id: 'jenkins-gerrit-credentials'
633           refspec: ''
634           choosing-strategy: 'default'
635
636     wrappers:
637       - fdio-infra-wrappers:
638           build-timeout: '{build-timeout}'
639
640     triggers:
641       - timed: '{periodicity}'
642       - gerrit-trigger-manually-triggered:
643           comment-trigger-value: '{comment-trigger-value}'
644           name: '{project}'
645           branch: '{branch}'
646
647     builders:
648       - shell:
649           !include-raw-escape:
650           - ../scripts/setup_executor_env.sh
651       - shell:
652           !include-raw-escape:
653           - ../scripts/setup_vpp_ubuntu_docker_test.sh
654       - shell:
655           !include-raw-escape:
656           - ../scripts/vpp/dpdk-rdma-version-mismatch.sh
657
658     publishers:
659       - vpp-dpdk-rdma-version-mismatch:
660           branch: '{branch}'
661       - fdio-infra-publish
662 # [end] VPP-DPDK-RDMA-VERSION-MISMATCH PERIODIC JOB TEMPLATE
663
664 # VPP-MERGE JOB TEMPLATE
665 - job-template:
666     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
667
668     project-type: freestyle
669     node: 'builder-{os}-prod-{executor-arch}'
670
671     properties:
672       - lf-infra-properties:
673           build-days-to-keep: "{build-days-to-keep}"
674
675     # Please keep parameters in alphabetical order
676     parameters:
677       - gerrit-parameter:
678           branch: '{branch}'
679       - make-parallel-jobs-parameter:
680           make-parallel-jobs: '{make-parallel-jobs}'
681       - make-test-os-parameter:
682           make-test-os: '{make-test-os}'
683       - make-test-multiworker-os-parameter:
684           make-test-multiworker-os: '{make-test-multiworker-os}'
685       - os-parameter:
686           os: '{os}'
687       - project-parameter:
688           project: '{project}'
689       - stream-parameter:
690           stream: '{stream}'
691
692     scm:
693       - gerrit-trigger-scm:
694           credentials-id: 'jenkins-gerrit-credentials'
695           refspec: ''
696           choosing-strategy: 'default'
697
698     wrappers:
699       - fdio-infra-wrappers:
700           build-timeout: 120
701
702     triggers:
703       - gerrit-trigger-patch-merged:
704           name: '{project}'
705           branch: '{branch}'
706
707     builders:
708       - config-file-provider:
709           files:
710             - file-id: '.packagecloud'
711               target: '/root/.packagecloud'
712       - config-file-provider:
713           files:
714             - file-id: 'packagecloud_api'
715               target: '/root/packagecloud_api'
716       - shell:
717           !include-raw-escape:
718           - ../scripts/setup_executor_env.sh
719       - shell:
720           !include-raw-escape:
721           - ../scripts/vpp/commitmsg.sh
722       - shell:
723           !include-raw-escape:
724           - ../scripts/setup_vpp_ubuntu_docker_test.sh
725       - shell:
726           !include-raw-escape:
727           - ../scripts/setup_vpp_ext_deps.sh
728       - shell:
729           !include-raw-escape:
730           - ../scripts/vpp/build.sh
731       - shell:
732           !include-raw-escape:
733           - ../scripts/packagecloud_push.sh
734
735     publishers:
736       - fdio-infra-publish
737 # [end] VPP-MERGE JOB TEMPLATE
738
739 # VPP-GCC-VERIFY JOB TEMPLATE
740 - job-template:
741     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
742
743     project-type: freestyle
744     node: 'builder-{os}-prod-{executor-arch}'
745     concurrent: true
746
747     properties:
748       - lf-infra-properties:
749           build-days-to-keep: "{build-days-to-keep}"
750
751     # Please keep parameters in alphabetical order
752     parameters:
753       - gerrit-parameter:
754           branch: '{branch}'
755       - gerrit-refspec-parameter:
756           refspec: '{branch-refspec}'
757       - make-parallel-jobs-parameter:
758           make-parallel-jobs: '{make-parallel-jobs}'
759       - os-parameter:
760           os: '{os}'
761       - project-parameter:
762           project: '{project}'
763       - stream-parameter:
764           stream: '{stream}'
765
766     scm:
767       - gerrit-trigger-scm:
768           credentials-id: 'jenkins-gerrit-credentials'
769           refspec: '$GERRIT_REFSPEC'
770           choosing-strategy: 'gerrit'
771
772     wrappers:
773       - fdio-infra-wrappers:
774           build-timeout: 120
775
776     triggers:
777       - gerrit-trigger-checkstyle:
778           name: '{project}'
779           branch: '{branch}'
780
781     builders:
782       - shell:
783           !include-raw-escape:
784           - ../scripts/setup_executor_env.sh
785       - shell:
786           !include-raw-escape:
787           - ../scripts/setup_vpp_ubuntu_docker_test.sh
788       - shell:
789           !include-raw-escape:
790           - ../scripts/setup_vpp_ext_deps.sh
791       - shell:
792           !include-raw-escape:
793           - ../scripts/vpp/gcc-build.sh
794
795     publishers:
796       - fdio-infra-publish
797 # [end] VPP-GCC-VERIFY JOB TEMPLATE
798
799 # VPP-COV-VERIFY JOB TEMPLATE
800 - job-template:
801     name: 'vpp-cov-verify-{stream}-{os}-{executor-arch}'
802
803     project-type: freestyle
804     node: 'builder-{os}-prod-{executor-arch}'
805     concurrent: true
806
807     properties:
808       - lf-infra-properties:
809           build-days-to-keep: "{build-days-to-keep}"
810
811     # Please keep parameters in alphabetical order
812     parameters:
813       - gerrit-parameter:
814           branch: '{branch}'
815       - make-parallel-jobs-parameter:
816           make-parallel-jobs: '{make-parallel-jobs}'
817       - make-test-os-parameter:
818           make-test-os: '{make-test-os}'
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: ''
830           choosing-strategy: 'default'
831
832     wrappers:
833       - fdio-infra-wrappers:
834           build-timeout: '{build-timeout}'
835
836     triggers:
837       - timed: '{periodicity}'
838       - gerrit-trigger-manually-triggered:
839           comment-trigger-value: '{comment-trigger-value}'
840           name: '{project}'
841           branch: '{branch}'
842
843     builders:
844       - shell:
845           !include-raw-escape:
846           - ../scripts/setup_executor_env.sh
847       - shell:
848           !include-raw-escape:
849           - ../scripts/setup_vpp_ubuntu_docker_test.sh
850       - shell:
851           !include-raw-escape:
852           - ../scripts/setup_vpp_ext_deps.sh
853       - shell:
854           !include-raw-escape:
855           - ../scripts/vpp/cov-build.sh
856
857     publishers:
858       - fdio-infra-publish-cov-7day
859       - fdio-infra-publish
860 # [end] VPP-COV-VERIFY JOB TEMPLATE
861
862 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
863 - job-template:
864     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
865     description: |
866       <ul>
867           <li>executor
868               <ul>
869                   <li>csit-builder-{os}-prod-{executor-arch}
870               </ul>
871           <li>testbed architecture
872               <ul>
873                   <li>{testbed-arch}
874               </ul>
875       </ul>
876
877     project-type: freestyle
878     node: 'csit-builder-{os}-prod-{executor-arch}'
879     concurrent: true
880     latest-only: false
881
882     properties:
883       - lf-infra-properties:
884           build-days-to-keep: "{build-days-to-keep}"
885
886     # Please keep parameters in alphabetical order
887     parameters:
888       - gerrit-csit-refspec-parameter
889       - gerrit-event-comment-text-parameter
890       - gerrit-event-type-parameter
891       - gerrit-parameter:
892           branch: '{branch}'
893       - gerrit-refspec-parameter:
894           refspec: '{branch-refspec}'
895       - make-parallel-jobs-parameter:
896           make-parallel-jobs: '{make-parallel-jobs}'
897       - os-parameter:
898           os: '{os}'
899       - project-parameter:
900           project: '{project}'
901       - stream-parameter:
902           stream: '{stream}'
903
904     scm:
905       - gerrit-trigger-scm:
906           credentials-id: 'jenkins-gerrit-credentials'
907           refspec: '$GERRIT_REFSPEC'
908           choosing-strategy: 'gerrit'
909
910     wrappers:
911       - fdio-infra-wrappers:
912           build-timeout: '90'
913
914     triggers:
915       - 'gerrit-trigger-vpp-csit-devicetest-full':
916           name: '{project}'
917           branch: '{branch}'
918           skip-vote: '{skip-vote}'
919
920     builders:
921       - shell:
922           !include-raw-escape:
923           - ../scripts/setup_executor_env.sh
924       - shell:
925           !include-raw-escape:
926           - ../scripts/setup_vpp_ubuntu_docker_test.sh
927       - shell:
928           !include-raw-escape:
929           - ../scripts/setup_vpp_ext_deps.sh
930       - shell:
931           !include-raw-escape:
932           - ../scripts/vpp/csit-device.sh
933
934     publishers:
935       - fdio-infra-publish
936 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
937
938 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
939 - job-template:
940     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
941     description: |
942       <ul>
943           <li>executor
944               <ul>
945                   <li>builder-{os}-prod-{executor-arch}
946               </ul>
947           <li>testbed architecture
948               <ul>
949                   <li>{testbed-arch}
950               </ul>
951           <li>Objective
952           Contrary to csit-vpp job, this also measures the parent performance,
953           and fails if performance regression is detected.
954           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
955       </ul>
956
957     project-type: freestyle
958     node: 'builder-{os}-prod-{executor-arch}'
959     concurrent: true
960     latest-only: false
961
962     properties:
963       - lf-infra-properties:
964           build-days-to-keep: "{build-days-to-keep}"
965
966     # Please keep parameters in alphabetical order
967     parameters:
968       - csit-perf-trial-duration-parameter:
969           csit-perf-trial-duration: "10.0"
970       - csit-perf-trial-multiplicity-parameter:
971           csit-perf-trial-multiplicity: "5"
972       - gerrit-csit-refspec-parameter
973       - gerrit-event-comment-text-parameter
974       - gerrit-event-type-parameter
975       - gerrit-refspec-parameter:
976           refspec: '{branch-refspec}'
977       - gerrit-parameter:
978           branch: '{branch}'
979       - make-parallel-jobs-parameter:
980           make-parallel-jobs: '{make-parallel-jobs}'
981       - os-parameter:
982           os: '{os}'
983       - project-parameter:
984           project: '{project}'
985       - stream-parameter:
986           stream: '{stream}'
987
988     scm:
989       - gerrit-trigger-scm:
990           credentials-id: 'jenkins-gerrit-credentials'
991           refspec: '$GERRIT_REFSPEC'
992           choosing-strategy: 'gerrit'
993
994     wrappers:
995       - fdio-infra-wrappers-non-activity-timeout:
996           build-timeout: 300
997
998     triggers:
999       - gerrit-trigger-csit-perftest:
1000           project: '{project}'
1001           branch: '{branch}'
1002           trigger-word: 'perftest-{testbed-arch}'
1003           skip-vote: true
1004
1005     builders:
1006       - shell:
1007           !include-raw-escape:
1008           - ../scripts/setup_executor_env.sh
1009       - shell:
1010           !include-raw-escape:
1011           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1012       - shell:
1013           !include-raw-escape:
1014           - ../scripts/setup_vpp_ext_deps.sh
1015       - shell:
1016           !include-raw-escape:
1017           - ../scripts/vpp/csit-perf.sh
1018
1019     publishers:
1020       - postbuildscript:
1021           # Can be removed when all CSIT branches use correct archive directory.
1022           builders:
1023             - build-on:
1024                 - ABORTED
1025                 - FAILURE
1026                 - NOT_BUILT
1027                 - SUCCESS
1028                 - UNSTABLE
1029               build-steps:
1030                 - shell:
1031                     !include-raw-escape:
1032                     - ../scripts/vpp/copy_archives.sh
1033       - fdio-infra-publish
1034 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1035
1036 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1037 - job-template:
1038     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1039
1040     project-type: freestyle
1041     node: 'builder-{os}-prod-{executor-arch}'
1042     concurrent: true
1043     latest-only: false
1044
1045     properties:
1046       - lf-infra-properties:
1047           build-days-to-keep: "{build-days-to-keep}"
1048
1049     # Please keep parameters in alphabetical order
1050     parameters:
1051       # Not sure whether not failing has any useful usage,
1052       # but it does not hurt to have some flexibility for future.
1053       - csit-fail-on-crc-mismatch-parameter:
1054           fail-on-crc-mismatch: 'True'
1055       - gerrit-csit-refspec-parameter
1056       - gerrit-parameter:
1057           branch: '{branch}'
1058       - gerrit-refspec-parameter:
1059           refspec: '{branch-refspec}'
1060       - project-parameter:
1061           project: '{project}'
1062       - stream-parameter:
1063           stream: '{stream}'
1064
1065     scm:
1066       - gerrit-trigger-scm:
1067           credentials-id: 'jenkins-gerrit-credentials'
1068           refspec: '$GERRIT_REFSPEC'
1069           choosing-strategy: 'gerrit'
1070
1071     wrappers:
1072       - fdio-infra-wrappers-non-activity-timeout:
1073           build-timeout: 300
1074
1075     triggers:
1076       - gerrit-trigger-checkstyle:
1077           name: '{project}'
1078           branch: '{branch}'
1079
1080     builders:
1081       - shell:
1082           !include-raw-escape:
1083           - ../scripts/setup_executor_env.sh
1084       - shell:
1085           !include-raw-escape:
1086           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1087       - shell:
1088           !include-raw-escape:
1089           - ../scripts/vpp/check_crc.sh
1090     # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1091
1092     publishers:
1093       - fdio-infra-publish
1094 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1095 # [end] JOB TEMPLATE DEFINITIONS
1096
1097 - project:
1098     name: vpp-release
1099     project: vpp
1100     project-name: vpp
1101     build-node: centos8-builder-2c-2g
1102     mvn-settings: vpp-settings
1103     jobs:
1104       - "gerrit-packagecloud-release-verify"
1105
1106 - project:
1107     name: vpp-packagecloud-release
1108     project: vpp
1109     project-name: vpp
1110     build-node: centos8-builder-2c-2g
1111     mvn-settings: vpp-settings
1112     jobs:
1113       - "gerrit-packagecloud-release-merge"
1114       - "{project-name}-gerrit-release-jobs"