Merge "Add libparc verify/merge job for ubuntu 20.04-arm64"
[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     build-discarder:
412       daysToKeep: '{build-days-to-keep}'
413       numToKeep: '{build-num-to-keep}'
414       artifactDaysToKeep: '{build-artifact-days-to-keep}'
415       artifactNumToKeep: '{build-artifact-num-to-keep}'
416
417     # Please keep parameters in alphabetical order
418     parameters:
419       - archive-artifacts-parameter:
420           artifacts: '{archive-artifacts}'
421       - gerrit-parameter:
422           branch: '{branch}'
423       - gerrit-refspec-parameter:
424           refspec: '{branch-refspec}'
425       - os-parameter:
426           os: '{os}'
427       - project-parameter:
428           project: '{project}'
429       - repo-name-parameter:
430           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
431
432     scm:
433       - gerrit-trigger-scm:
434           credentials-id: 'jenkins-gerrit-credentials'
435           refspec: '$GERRIT_REFSPEC'
436           choosing-strategy: 'gerrit'
437
438     wrappers:
439       - fdio-infra-wrappers:
440           build-timeout: '{build-timeout}'
441       - credentials-binding:
442           - text:
443               credential-id: VppApiCompatNotify
444               variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
445
446     triggers:
447       - gerrit:
448           server-name: 'Primary'
449           trigger-on:
450             - patchset-created-event:
451                 exclude-drafts: 'true'
452                 exclude-trivial-rebase: 'false'
453                 exclude-no-code-change: 'false'
454             - draft-published-event
455             - comment-added-contains-event:
456                 comment-contains-value: 'checkstylecheck'
457             - comment-added-contains-event:
458                 comment-contains-value: 'docsonly'
459             - comment-added-contains-event:
460                 comment-contains-value: 'recheck'
461             - comment-added-contains-event:
462                 comment-contains-value: 'reverify'
463             # Following two are to cover missing functions of drafts
464             # going to review status
465             - comment-added-contains-event:
466                 comment-contains-value: 'runtest'
467             - comment-added-contains-event:
468                 comment-contains-value: 'This change is ready for review'
469           projects:
470             - project-compare-type: 'ANT'
471               project-pattern: '{project}'
472               branches:
473                 - branch-compare-type: 'ANT'
474                   branch-pattern: '**/{branch}'
475               file-paths:
476                 - compare-type: REG_EXP
477                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
478               forbidden-file-paths:
479                 - compare-type: REG_EXP
480                   pattern: .*docs\/.*
481                 - compare-type: REG_EXP
482                   pattern: .*extras\/emacs\/.*
483               disable-strict-forbidden-file-verification: 'true'
484           override-votes: true
485           gerrit-build-notbuilt-verified-value: 0
486           gerrit-build-successful-verified-value: 1
487           # yamllint disable-line rule:line-length
488           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
489           # yamllint disable-line rule:line-length
490           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
491           successful-message: 'checkstyle_success'
492           skip-vote:
493             successful: true
494             failed: false
495             unstable: false
496             notbuilt: false
497
498     builders:
499       - shell:
500           !include-raw-escape:
501           - ../scripts/setup_executor_env.sh
502       - shell:
503           !include-raw-escape:
504           - ../scripts/vpp/checkstyle.sh
505       - shell:
506           !include-raw-escape:
507           - ../scripts/vpp/test-checkstyle.sh
508       - shell:
509           !include-raw-escape:
510           - ../scripts/vpp/api-checkstyle.sh
511       - shell:
512           !include-raw-escape:
513           - ../scripts/vpp/commitmsg.sh
514
515     publishers:
516       - fdio-infra-publish
517
518 # [end] VPP-CHECKSTYLE-VERIFY JOB TEMPLATE
519
520 # VPP-VERIFY JOB TEMPLATE
521 - job-template:
522     name: 'vpp-verify-{stream}-{os}-{executor-arch}'
523
524     project-type: freestyle
525     node: 'builder-{os}-prod-{executor-arch}'
526     concurrent: true
527
528     build-discarder:
529       daysToKeep: '{build-days-to-keep}'
530       numToKeep: 100
531       artifactDaysToKeep: '{build-artifact-days-to-keep}'
532       artifactNumToKeep: '{build-artifact-num-to-keep}'
533
534     # Please keep parameters in alphabetical order
535     parameters:
536       - archive-artifacts-parameter:
537           artifacts: '{archive-artifacts}'
538       - gerrit-parameter:
539           branch: '{branch}'
540       - gerrit-refspec-parameter:
541           refspec: '{branch-refspec}'
542       - make-parallel-jobs-parameter:
543           make-parallel-jobs: '{make-parallel-jobs}'
544       - make-test-os-parameter:
545           make-test-os: '{make-test-os}'
546       - os-parameter:
547           os: '{os}'
548       - project-parameter:
549           project: '{project}'
550       - repo-name-parameter:
551           repo-name: '{repo-stream-part}.{repo-os-part}'
552       - stream-parameter:
553           stream: '{stream}'
554
555     scm:
556       - gerrit-trigger-scm:
557           credentials-id: 'jenkins-gerrit-credentials'
558           refspec: '$GERRIT_REFSPEC'
559           choosing-strategy: 'gerrit'
560
561     wrappers:
562       - fdio-infra-wrappers:
563           build-timeout: 120
564
565     triggers:
566       - gerrit-trigger-checkstyle:
567           name: '{project}'
568           branch: '{branch}'
569
570     builders:
571       - shell:
572           !include-raw-escape:
573           - ../scripts/setup_executor_env.sh
574       - shell:
575           !include-raw-escape:
576           - ../scripts/setup_vpp_ubuntu_docker_test.sh
577       - shell:
578           !include-raw-escape:
579           - ../scripts/setup_vpp_dpdk_dev_env.sh
580       - shell:
581           !include-raw-escape:
582           - ../scripts/vpp/build.sh
583
584     publishers:
585       - fdio-infra-publish
586 # [end] VPP-VERIFY JOB TEMPLATE
587
588 # VPP-DEBUG-VERIFY JOB TEMPLATE
589 - job-template:
590     name: 'vpp-debug-verify-{stream}-{os}-{executor-arch}'
591
592     project-type: freestyle
593     node: 'builder-{os}-prod-{executor-arch}'
594     concurrent: true
595
596     build-discarder:
597       daysToKeep: '{build-days-to-keep}'
598       numToKeep: '{build-num-to-keep}'
599       artifactDaysToKeep: '{build-artifact-days-to-keep}'
600       artifactNumToKeep: '{build-artifact-num-to-keep}'
601
602     # Please keep parameters in alphabetical order
603     parameters:
604       - archive-artifacts-parameter:
605           artifacts: '{archive-artifacts}'
606       - gerrit-parameter:
607           branch: '{branch}'
608       - gerrit-refspec-parameter:
609           refspec: '{branch-refspec}'
610       - make-parallel-jobs-parameter:
611           make-parallel-jobs: '{make-parallel-jobs}'
612       - make-test-os-parameter:
613           make-test-os: '{make-test-os}'
614       - os-parameter:
615           os: 'ubuntu1804'
616       - project-parameter:
617           project: '{project}'
618       - repo-name-parameter:
619           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
620       - stream-parameter:
621           stream: '{stream}'
622
623     scm:
624       - gerrit-trigger-scm:
625           credentials-id: 'jenkins-gerrit-credentials'
626           refspec: '$GERRIT_REFSPEC'
627           choosing-strategy: 'gerrit'
628
629     wrappers:
630       - fdio-infra-wrappers:
631           build-timeout: '{build-timeout}'
632
633     triggers:
634       - timed: '{periodicity}'
635       - gerrit-trigger-manually-triggered:
636           comment-trigger-value: '{comment-trigger-value}'
637           name: '{project}'
638           branch: '{branch}'
639
640     builders:
641       - shell:
642           !include-raw-escape:
643           - ../scripts/setup_executor_env.sh
644       - shell:
645           !include-raw-escape:
646           - ../scripts/setup_vpp_ubuntu_docker_test.sh
647       - shell:
648           !include-raw-escape:
649           - ../scripts/setup_vpp_dpdk_dev_env.sh
650       - shell:
651           !include-raw-escape:
652           - ../scripts/vpp/debug-build.sh
653
654     publishers:
655       - fdio-infra-publish
656 # [end] VPP-DEBUG-VERIFY-PERIODIC JOB TEMPLATE
657
658 # VPP-MERGE JOB TEMPLATE
659 - job-template:
660     name: 'vpp-merge-{stream}-{os}-{executor-arch}'
661
662     project-type: freestyle
663     node: 'builder-{os}-prod-{executor-arch}'
664
665     build-discarder:
666       daysToKeep: '{build-days-to-keep}'
667       numToKeep: 100
668       artifactDaysToKeep: '{build-artifact-days-to-keep}'
669       artifactNumToKeep: '{build-artifact-num-to-keep}'
670
671     # Please keep parameters in alphabetical order
672     parameters:
673       - gerrit-parameter:
674           branch: '{branch}'
675       - make-parallel-jobs-parameter:
676           make-parallel-jobs: '{make-parallel-jobs}'
677       - make-test-os-parameter:
678           make-test-os: '{make-test-os}'
679       - os-parameter:
680           os: '{os}'
681       - project-parameter:
682           project: '{project}'
683       - repo-name-parameter:
684           repo-name: '{repo-stream-part}.{repo-os-part}'
685       - stream-parameter:
686           stream: '{stream}'
687       - archive-artifacts-parameter:
688           artifacts: '{archive-artifacts}'
689
690     scm:
691       - gerrit-trigger-scm:
692           credentials-id: 'jenkins-gerrit-credentials'
693           refspec: ''
694           choosing-strategy: 'default'
695
696     wrappers:
697       - fdio-infra-wrappers:
698           build-timeout: 120
699
700     triggers:
701       - gerrit-trigger-patch-merged:
702           name: '{project}'
703           branch: '{branch}'
704
705     builders:
706       - config-file-provider:
707           files:
708             - file-id: '.packagecloud'
709               target: '/root'
710       - config-file-provider:
711           files:
712             - file-id: 'packagecloud_api'
713               target: '/root'
714       - shell:
715           !include-raw-escape:
716           - ../scripts/setup_executor_env.sh
717       - shell:
718           !include-raw-escape:
719           - ../scripts/setup_vpp_ubuntu_docker_test.sh
720       - shell:
721           !include-raw-escape:
722           - ../scripts/setup_vpp_dpdk_dev_env.sh
723       - shell:
724           !include-raw-escape:
725           - ../scripts/vpp/build.sh
726
727       - provide-maven-settings:
728           settings-file: 'vpp-settings'
729           global-settings-file: 'global-settings'
730       - shell:
731           !include-raw-escape:
732           - ../scripts/packagecloud_push.sh
733
734     publishers:
735       - fdio-infra-publish
736 # [end] VPP-MERGE JOB TEMPLATE
737
738 # VPP-GCC-VERIFY JOB TEMPLATE
739 - job-template:
740     name: 'vpp-gcc-verify-{stream}-{os}-{executor-arch}'
741
742     project-type: freestyle
743     node: 'builder-{os}-prod-{executor-arch}'
744     concurrent: true
745
746     build-discarder:
747       daysToKeep: '{build-days-to-keep}'
748       numToKeep: 100
749       artifactDaysToKeep: '{build-artifact-days-to-keep}'
750       artifactNumToKeep: '{build-artifact-num-to-keep}'
751
752     # Please keep parameters in alphabetical order
753     parameters:
754       - gerrit-parameter:
755           branch: '{branch}'
756       - gerrit-refspec-parameter:
757           refspec: '{branch-refspec}'
758       - make-parallel-jobs-parameter:
759           make-parallel-jobs: '{make-parallel-jobs}'
760       - os-parameter:
761           os: '{os}'
762       - project-parameter:
763           project: '{project}'
764       - repo-name-parameter:
765           repo-name: '{repo-stream-part}.{repo-os-part}'
766       - stream-parameter:
767           stream: '{stream}'
768       - archive-artifacts-parameter:
769           artifacts: '{archive-artifacts}'
770
771     scm:
772       - gerrit-trigger-scm:
773           credentials-id: 'jenkins-gerrit-credentials'
774           refspec: '$GERRIT_REFSPEC'
775           choosing-strategy: 'gerrit'
776
777     wrappers:
778       - fdio-infra-wrappers:
779           build-timeout: 120
780
781     triggers:
782       - gerrit-trigger-checkstyle:
783           name: '{project}'
784           branch: '{branch}'
785
786     builders:
787       - shell:
788           !include-raw-escape:
789           - ../scripts/setup_executor_env.sh
790       - shell:
791           !include-raw-escape:
792           - ../scripts/setup_vpp_ubuntu_docker_test.sh
793       - shell:
794           !include-raw-escape:
795           - ../scripts/setup_vpp_dpdk_dev_env.sh
796       - shell:
797           !include-raw-escape:
798           - ../scripts/vpp/gcc-build.sh
799
800     publishers:
801       - fdio-infra-publish
802 # [end] VPP-GCC-VERIFY JOB TEMPLATE
803
804 # VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
805 - job-template:
806     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
807     id: 'vpp-csit-verify-device-periodic'
808     description: |
809       <ul>
810           <li>executor
811               <ul>
812                   <li>csit-builder-{os}-prod-{executor-arch}
813               </ul>
814           <li>testbed architecture
815               <ul>
816                   <li>{testbed-arch}
817               </ul>
818       </ul>
819
820     project-type: freestyle
821     node: 'csit-builder-{os}-prod-{executor-arch}'
822     concurrent: true
823     archive-artifacts: '**/csit_current/**/*.*'
824     latest-only: false
825
826     build-discarder:
827       daysToKeep: '{build-days-to-keep}'
828       numToKeep: 100
829       artifactDaysToKeep: '{build-artifact-days-to-keep}'
830       artifactNumToKeep: '{build-artifact-num-to-keep}'
831
832     # Please keep parameters in alphabetical order
833     parameters:
834       - archive-artifacts-parameter:
835           artifacts: '{archive-artifacts}'
836       - gerrit-csit-refspec-parameter
837       - gerrit-event-comment-text-parameter
838       - gerrit-event-type-parameter
839       - gerrit-parameter:
840           branch: '{branch}'
841       - gerrit-refspec-parameter:
842           refspec: '{branch-refspec}'
843       - make-parallel-jobs-parameter:
844           make-parallel-jobs: '{make-parallel-jobs}'
845       - os-parameter:
846           os: '{os}'
847       - project-parameter:
848           project: '{project}'
849       - repo-name-parameter:
850           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
851       - stream-parameter:
852           stream: '{stream}'
853
854     scm:
855       - gerrit-trigger-scm:
856           credentials-id: 'jenkins-gerrit-credentials'
857           refspec: '$GERRIT_REFSPEC'
858           choosing-strategy: 'default'
859
860     wrappers:
861       - fdio-infra-wrappers:
862           build-timeout: '90'
863
864     triggers:
865       - timed: '{periodicity}'
866       - gerrit-trigger-manually-triggered:
867           comment-trigger-value: '{comment-trigger-value}'
868           name: '{project}'
869           branch: '{branch}'
870
871     builders:
872       - shell:
873           !include-raw-escape:
874           - ../scripts/setup_executor_env.sh
875       - shell:
876           !include-raw-escape:
877           - ../scripts/setup_vpp_ubuntu_docker_test.sh
878       - shell:
879           !include-raw-escape:
880           - ../scripts/setup_vpp_dpdk_dev_env.sh
881       - shell:
882           !include-raw-escape:
883           - ../scripts/vpp/csit-device.sh
884
885     publishers:
886       - robot-report:
887           output-path: 'archives'
888
889       - fdio-infra-publish
890 # [end] VPP-CSIT-VERIFY-DEVICE-PERIODIC JOB TEMPLATE
891
892 # VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
893 - job-template:
894     name: 'vpp-csit-verify-device-{stream}-{os}-{executor-arch}-{testbed-arch}'
895     id: 'vpp-csit-verify-device-perpatch'
896     description: |
897       <ul>
898           <li>executor
899               <ul>
900                   <li>csit-builder-{os}-prod-{executor-arch}
901               </ul>
902           <li>testbed architecture
903               <ul>
904                   <li>{testbed-arch}
905               </ul>
906       </ul>
907
908     project-type: freestyle
909     node: 'csit-builder-{os}-prod-{executor-arch}'
910     concurrent: true
911     archive-artifacts: '**/csit_current/**/*.*'
912     latest-only: false
913
914     build-discarder:
915       daysToKeep: '{build-days-to-keep}'
916       numToKeep: 100
917       artifactDaysToKeep: '{build-artifact-days-to-keep}'
918       artifactNumToKeep: '{build-artifact-num-to-keep}'
919
920     # Please keep parameters in alphabetical order
921     parameters:
922       - archive-artifacts-parameter:
923           artifacts: '{archive-artifacts}'
924       - gerrit-csit-refspec-parameter
925       - gerrit-event-comment-text-parameter
926       - gerrit-event-type-parameter
927       - gerrit-parameter:
928           branch: '{branch}'
929       - gerrit-refspec-parameter:
930           refspec: '{branch-refspec}'
931       - make-parallel-jobs-parameter:
932           make-parallel-jobs: '{make-parallel-jobs}'
933       - os-parameter:
934           os: '{os}'
935       - project-parameter:
936           project: '{project}'
937       - repo-name-parameter:
938           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
939       - stream-parameter:
940           stream: '{stream}'
941
942     scm:
943       - gerrit-trigger-scm:
944           credentials-id: 'jenkins-gerrit-credentials'
945           refspec: '$GERRIT_REFSPEC'
946           choosing-strategy: 'gerrit'
947
948     wrappers:
949       - fdio-infra-wrappers:
950           build-timeout: '90'
951
952     triggers:
953       - 'gerrit-trigger-vpp-csit-devicetest-full':
954           name: '{project}'
955           branch: '{branch}'
956           skip-vote: '{skip-vote}'
957
958     builders:
959       - shell:
960           !include-raw-escape:
961           - ../scripts/setup_executor_env.sh
962       - shell:
963           !include-raw-escape:
964           - ../scripts/setup_vpp_ubuntu_docker_test.sh
965       - shell:
966           !include-raw-escape:
967           - ../scripts/setup_vpp_dpdk_dev_env.sh
968       - shell:
969           !include-raw-escape:
970           - ../scripts/vpp/csit-device.sh
971
972     publishers:
973       - robot-report:
974           output-path: 'archives'
975
976       - fdio-infra-publish
977 # [end] VPP-CSIT-VERIFY-DEVICE-PERPATCH JOB TEMPLATE
978
979 # VPP-CSIT-VERIFY-PERF JOB TEMPLATE
980 - job-template:
981     name: 'vpp-csit-verify-perf-{stream}-{os}-{executor-arch}-{testbed-arch}'
982     description: |
983       <ul>
984           <li>executor
985               <ul>
986                   <li>builder-{os}-prod-{executor-arch}
987               </ul>
988           <li>testbed architecture
989               <ul>
990                   <li>{testbed-arch}
991               </ul>
992           <li>Objective
993           Contrary to csit-vpp job, this also measures the parent performance,
994           and fails if performance regression is detected.
995           See https://github.com/FDio/csit/blob/master/docs/cpta/methodology/perpatch_performance_tests.rst
996       </ul>
997
998     project-type: freestyle
999     node: 'builder-{os}-prod-{executor-arch}'
1000     concurrent: true
1001     archive-artifacts: >
1002       **/csit_current/**/*.*
1003       **/csit_parent/**/*.*
1004     latest-only: false
1005
1006     build-discarder:
1007       daysToKeep: '{build-days-to-keep}'
1008       numToKeep: 100
1009       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1010       artifactNumToKeep: '{build-artifact-num-to-keep}'
1011
1012     # Please keep parameters in alphabetical order
1013     parameters:
1014       - archive-artifacts-parameter:
1015           artifacts: '{archive-artifacts}'
1016       - csit-perf-trial-duration-parameter:
1017           csit-perf-trial-duration: "10.0"
1018       - csit-perf-trial-multiplicity-parameter:
1019           csit-perf-trial-multiplicity: "5"
1020       - gerrit-csit-refspec-parameter
1021       - gerrit-event-comment-text-parameter
1022       - gerrit-event-type-parameter
1023       - gerrit-refspec-parameter:
1024           refspec: '{branch-refspec}'
1025       - gerrit-parameter:
1026           branch: '{branch}'
1027       - make-parallel-jobs-parameter:
1028           make-parallel-jobs: '{make-parallel-jobs}'
1029       - os-parameter:
1030           os: '{os}'
1031       - project-parameter:
1032           project: '{project}'
1033       - repo-name-parameter:
1034           repo-name: '{repo-stream-part}.ubuntu.bionic.main'
1035       - stream-parameter:
1036           stream: '{stream}'
1037
1038     scm:
1039       - gerrit-trigger-scm:
1040           credentials-id: 'jenkins-gerrit-credentials'
1041           refspec: '$GERRIT_REFSPEC'
1042           choosing-strategy: 'gerrit'
1043
1044     wrappers:
1045       - fdio-infra-wrappers-non-activity-timeout:
1046           build-timeout: 300
1047
1048     triggers:
1049       - gerrit-trigger-csit-perftest:
1050           project: '{project}'
1051           branch: '{branch}'
1052           trigger-word: 'perftest-{testbed-arch}'
1053           skip-vote: true
1054
1055     builders:
1056       - shell:
1057           !include-raw-escape:
1058           - ../scripts/setup_executor_env.sh
1059       - shell:
1060           !include-raw-escape:
1061           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1062       - shell:
1063           !include-raw-escape:
1064           - ../scripts/setup_vpp_dpdk_dev_env.sh
1065       - shell:
1066           !include-raw-escape:
1067           - ../scripts/vpp/csit-perf.sh
1068
1069     publishers:
1070       - robot-report:
1071           output-path: 'csit_current/0/'
1072
1073       - fdio-infra-publish
1074 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE
1075
1076 # VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1077 - job-template:
1078     name: 'vpp-csit-verify-api-crc-{stream}-{os}-{executor-arch}'
1079
1080     project-type: freestyle
1081     node: 'builder-{os}-prod-{executor-arch}'
1082     concurrent: true
1083     latest-only: false
1084
1085     build-discarder:
1086       daysToKeep: '{build-days-to-keep}'
1087       numToKeep: 100
1088       artifactDaysToKeep: '{build-artifact-days-to-keep}'
1089       artifactNumToKeep: '{build-artifact-num-to-keep}'
1090
1091     # Please keep parameters in alphabetical order
1092     parameters:
1093       - archive-artifacts-parameter:
1094           artifacts: '{archive-artifacts}'
1095       # Not sure whether not failing has any useful usage,
1096       # but it does not hurt to have some flexibility for future.
1097       - csit-fail-on-crc-mismatch-parameter:
1098           fail-on-crc-mismatch: 'True'
1099       - gerrit-csit-refspec-parameter
1100       - gerrit-parameter:
1101           branch: '{branch}'
1102       - gerrit-refspec-parameter:
1103           refspec: '{branch-refspec}'
1104       - project-parameter:
1105           project: '{project}'
1106       - stream-parameter:
1107           stream: '{stream}'
1108
1109     scm:
1110       - gerrit-trigger-scm:
1111           credentials-id: 'jenkins-gerrit-credentials'
1112           refspec: '$GERRIT_REFSPEC'
1113           choosing-strategy: 'gerrit'
1114
1115     wrappers:
1116       - fdio-infra-wrappers-non-activity-timeout:
1117           build-timeout: 300
1118
1119     triggers:
1120       - gerrit-trigger-checkstyle:
1121           name: '{project}'
1122           branch: '{branch}'
1123
1124     builders:
1125       - shell:
1126           !include-raw-escape:
1127           - ../scripts/setup_executor_env.sh
1128       - shell:
1129           !include-raw-escape:
1130           - ../scripts/setup_vpp_ubuntu_docker_test.sh
1131       - shell:
1132           !include-raw-escape:
1133           - ../scripts/vpp/check_crc.sh
1134       # TODO: Add sending e-mail notifications to vpp-api-dev@lists.fd.io
1135
1136     publishers:
1137       - fdio-infra-publish
1138 # [end] VPP-CSIT-VERIFY-API-CRC JOB TEMPLATE
1139 # [end] JOB TEMPLATE DEFINITIONS