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