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