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