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