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