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