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