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