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