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