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