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