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