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