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