Email Weekly Anteater Reports to PTLs
[releng.git] / jjb / global / releng-macros.yml
1 ---
2 # Releng macros
3 #
4 # NOTE: make sure macros are listed in execution ordered.
5 #
6 # 1. parameters/properties
7 # 2. scm
8 # 3. triggers
9 # 4. wrappers
10 # 5. prebuilders (maven only, configured like Builders)
11 # 6. builders (maven, freestyle, matrix, etc..)
12 # 7. postbuilders (maven only, configured like Builders)
13 # 8. publishers/reporters/notifications
14
15 - parameter:
16     name: project-parameter
17     parameters:
18       - string:
19           name: PROJECT
20           default: '{project}'
21           description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project"
22       - string:
23           name: GS_BASE
24           default: artifacts.opnfv.org/$PROJECT
25           description: "URL to Google Storage."
26       - string:
27           name: GS_BASE_PROXY
28           default: build.opnfv.org/artifacts.opnfv.org/$PROJECT
29           description: "URL to Google Storage proxy"
30       - string:
31           name: BRANCH
32           default: '{branch}'
33           description: "JJB configured BRANCH parameter (e.g. master, stable/danube)"
34       - string:
35           name: GERRIT_BRANCH
36           default: '{branch}'
37           description: "JJB configured GERRIT_BRANCH parameter (deprecated)"
38
39 - property:
40     name: logrotate-default
41     properties:
42       - build-discarder:
43           days-to-keep: 60
44           num-to-keep: 200
45           artifact-days-to-keep: 60
46           artifact-num-to-keep: 200
47
48 - scm:
49     name: git-scm
50     scm:
51       - git: &git-scm-defaults
52           credentials-id: '$SSH_CREDENTIAL_ID'
53           url: '$GIT_BASE'
54           branches:
55             - 'origin/$BRANCH'
56           timeout: 15
57
58 - scm:
59     name: git-scm-gerrit
60     scm:
61       - git:
62           choosing-strategy: 'gerrit'
63           refspec: '$GERRIT_REFSPEC'
64           <<: *git-scm-defaults
65 - scm:
66     name: git-scm-with-submodules
67     scm:
68       - git:
69           credentials-id: '$SSH_CREDENTIAL_ID'
70           url: '$GIT_BASE'
71           refspec: ''
72           branches:
73             - 'refs/heads/{branch}'
74           skip-tag: true
75           wipe-workspace: true
76           submodule:
77             recursive: true
78             timeout: 20
79 - trigger:
80     name: 'daily-trigger-disabled'
81     triggers:
82       - timed: ''
83
84 - trigger:
85     name: 'weekly-trigger-disabled'
86     triggers:
87       - timed: ''
88
89 - trigger:
90     name: gerrit-trigger-patchset-created
91     triggers:
92       - gerrit:
93           server-name: 'gerrit.opnfv.org'
94           trigger-on:
95             - patchset-created-event:
96                 exclude-drafts: 'false'
97                 exclude-trivial-rebase: 'false'
98                 exclude-no-code-change: 'false'
99             - draft-published-event
100             - comment-added-contains-event:
101                 comment-contains-value: 'recheck'
102             - comment-added-contains-event:
103                 comment-contains-value: 'reverify'
104           projects:
105             - project-compare-type: 'ANT'
106               project-pattern: '{project}'
107               branches:
108                 - branch-compare-type: 'ANT'
109                   branch-pattern: '**/{branch}'
110               file-paths:
111                 - compare-type: 'ANT'
112                   pattern: '{files}'
113           skip-vote:
114             successful: false
115             failed: false
116             unstable: false
117             notbuilt: false
118
119 - trigger:
120     name: gerrit-trigger-change-merged
121     triggers:
122       - gerrit:
123           server-name: 'gerrit.opnfv.org'
124           trigger-on:
125             - change-merged-event
126             - comment-added-contains-event:
127                 comment-contains-value: 'remerge'
128           projects:
129             - project-compare-type: 'ANT'
130               project-pattern: '{project}'
131               branches:
132                 - branch-compare-type: 'ANT'
133                   branch-pattern: '**/{branch}'
134               file-paths:
135                 - compare-type: 'ANT'
136                   pattern: '{files}'
137
138 - trigger:
139     name: gerrit-trigger-tag-created
140     triggers:
141       - gerrit:
142           server-name: 'gerrit.opnfv.org'
143           trigger-on:
144             - ref-updated
145           projects:
146             - project-compare-type: 'ANT'
147               project-pattern: '{project}'
148               branches:
149                 - branch-compare-type: 'ANT'
150                   branch-pattern: 'refs/tags/**'
151
152 - trigger:
153     name: 'experimental'
154     triggers:
155       - gerrit:
156           server-name: 'gerrit.opnfv.org'
157           trigger-on:
158             - comment-added-contains-event:
159                 comment-contains-value: 'check-experimental'
160           projects:
161             - project-compare-type: 'ANT'
162               project-pattern: '{project}'
163               branches:
164                 - branch-compare-type: 'ANT'
165                   branch-pattern: '**/{branch}'
166               file-paths:
167                 - compare-type: 'ANT'
168                   pattern: '{files}'
169           skip-vote:
170             successful: true
171             failed: true
172             unstable: true
173             notbuilt: true
174
175 - wrapper:
176     name: ssh-agent-wrapper
177     wrappers:
178       - ssh-agent-credentials:
179           users:
180             - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
181
182 - wrapper:
183     name: build-timeout
184     wrappers:
185       - timeout:
186           timeout: '{timeout}'
187           timeout-var: 'BUILD_TIMEOUT'
188           fail: true
189
190 - wrapper:
191     name: fix-workspace-permissions
192     wrappers:
193       - pre-scm-buildstep:
194           - shell: |
195              #!/bin/bash
196              sudo chown -R $USER:$USER $WORKSPACE || exit 1
197
198 - builder:
199     name: upload-under-review-docs-to-opnfv-artifacts
200     builders:
201       - shell: |
202           #!/bin/bash
203           set -o errexit
204           set -o pipefail
205           set -o xtrace
206           export PATH=$PATH:/usr/local/bin/
207
208           [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
209           [[ -d docs/_build/ ]] || exit 0
210
211           echo
212           echo "###########################"
213           echo "UPLOADING DOCS UNDER REVIEW"
214           echo "###########################"
215           echo
216
217           gs_base="artifacts.opnfv.org/$PROJECT/review"
218           gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
219           local_path="upload/$GERRIT_CHANGE_NUMBER"
220
221           mkdir -p upload
222           mv docs/_build/html/ "$local_path"
223           gsutil -m cp -r "$local_path" "gs://$gs_base"
224
225           gsutil -m setmeta \
226               -h "Content-Type:text/html" \
227               -h "Cache-Control:private, max-age=0, no-transform" \
228               "gs://$gs_path"/**.html > /dev/null 2>&1
229
230           echo "Document link(s):" >> gerrit_comment.txt
231           find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
232               sed -e "s|^$local_path|    http://$gs_path|" >> gerrit_comment.txt
233
234 # To take advantage of this macro, have your build write
235 # out the file 'gerrit_comment.txt' with information to post
236 # back to gerrit and include this macro in the list of builders.
237 - builder:
238     name: report-build-result-to-gerrit
239     builders:
240       - shell: |
241           #!/bin/bash
242           set -o errexit
243           set -o pipefail
244           set -o xtrace
245           export PATH=$PATH:/usr/local/bin/
246           if [[ -e gerrit_comment.txt ]] ; then
247               echo
248               echo "posting review comment to gerrit..."
249               echo
250               cat gerrit_comment.txt
251               echo
252               ssh -p 29418 gerrit.opnfv.org \
253                   "gerrit review -p $GERRIT_PROJECT \
254                    -m '$(cat gerrit_comment.txt)' \
255                    $GERRIT_PATCHSET_REVISION \
256                    --notify NONE"
257           fi
258
259 - builder:
260     name: remove-old-docs-from-opnfv-artifacts
261     builders:
262       - shell: |
263           #!/bin/bash
264           set -o errexit
265           set -o pipefail
266           set -o xtrace
267           export PATH=$PATH:/usr/local/bin/
268
269           [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
270
271           gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
272
273           if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
274               echo
275               echo "Deleting Out-of-dated Documents..."
276               gsutil -m rm -r "gs://$gs_path"
277           fi
278           gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
279
280           if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
281               echo
282               echo "Deleting Out-of-dated Documents..."
283               gsutil -m rm -r "gs://$gs_path"
284           fi
285
286 - builder:
287     name: lint-python-code
288     builders:
289       - shell: |
290           #!/bin/bash
291           set -o errexit
292           set -o pipefail
293           set -o xtrace
294           export PATH=$PATH:/usr/local/bin/
295
296           virtualenv -p python2.7 $WORKSPACE/releng_flake8
297           source $WORKSPACE/releng_flake8/bin/activate
298
299           # install python packages
300           pip install "flake8==2.6.2"
301
302           # generate and upload lint log
303           echo "Running flake8 code on $PROJECT ..."
304
305           # Get number of flake8 violations. If none, this will be an
306           # empty string: ""
307           FLAKE_COUNT="$(find . \
308               -path './releng_flake8' -prune -o \
309               -path './.tox' -prune -o \
310               -type f -name "*.py" -print | \
311               xargs flake8 --exit-zero -qq --count 2>&1)"
312
313           # Ensure we start with a clean environment
314           rm -f lint.log
315
316           if [ ! -z $FLAKE_COUNT ]; then
317             echo "Flake8 Violations: $FLAKE_COUNT" > lint.log
318             find . \
319                 -path './releng_flake8' -prune -o \
320                 -path './.tox' -prune -o \
321                 -type f -name "*.py" -print | \
322                 xargs flake8 --exit-zero --first >> violation.log
323             SHOWN=$(wc -l violation.log | cut -d' ' -f1)
324             echo -e "First $SHOWN shown\n---" >> lint.log
325             cat violation.log >> lint.log
326             sed -r -i '4,$s/^/ /g' lint.log
327             rm violation.log
328           fi
329
330           deactivate
331
332 - builder:
333     name: report-lint-result-to-gerrit
334     builders:
335       - shell: |
336           #!/bin/bash
337           set -o errexit
338           set -o pipefail
339           set -o xtrace
340           export PATH=$PATH:/usr/local/bin/
341
342           # If no violations were found, no lint log will exist.
343           if [[ -e lint.log ]] ; then
344               echo -e "\nposting linting report to gerrit...\n"
345
346               cat lint.log
347               echo
348
349               ssh -p 29418 gerrit.opnfv.org \
350                   "gerrit review -p $GERRIT_PROJECT \
351                    -m \"$(cat lint.log)\" \
352                    $GERRIT_PATCHSET_REVISION \
353                    --notify NONE"
354
355               exit 1
356           fi
357
358 - builder:
359     name: upload-review-docs
360     builders:
361       - upload-under-review-docs-to-opnfv-artifacts
362       - report-build-result-to-gerrit
363
364 - builder:
365     name: check-bash-syntax
366     builders:
367       - shell: "find . -name '*.sh' | xargs bash -n"
368
369 - builder:
370     name: lint-yaml-code
371     builders:
372       - shell: |
373           #!/bin/bash
374           set -o errexit
375           set -o pipefail
376           set -o xtrace
377           export PATH=$PATH:/usr/local/bin/
378
379           # install python packages
380           sudo pip install "yamllint==1.8.2"
381
382           # generate and upload lint log
383           echo "Running yaml code on $PROJECT ..."
384
385           # Get list of yaml files
386           YAML_FILES=$(git --no-pager diff --diff-filter=MCRAT --name-only HEAD^1 | egrep "ya?ml$") || true
387
388           #If YAML_FILES is none exit with 0
389           if [ -z "$YAML_FILES" ]; then
390               exit 0
391           fi
392
393           # Ensure we start with a clean environment
394           rm -f yaml-violation.log lint.log
395
396           # Yamllint files only in patchset
397           for yamlfile in $YAML_FILES; do
398             yamllint $yamlfile >> yaml-violation.log || true
399           done
400
401           if [ -s "yaml-violation.log" ]; then
402             SHOWN=$(grep -c -v "^$" yaml-violation.log)
403             echo -e "First $SHOWN shown\n---" > lint.log
404             cat yaml-violation.log >> lint.log
405             sed -r -i '4,$s/^/ /g' lint.log
406           fi
407
408 - builder:
409     name: clean-workspace
410     builders:
411       - shell: |
412           #!/bin/bash
413           set -o errexit
414           set -o nounset
415           set -o pipefail
416           sudo /bin/rm -rf "$WORKSPACE"
417
418 - builder:
419     name: clean-workspace-log
420     builders:
421       - shell: |
422           find $WORKSPACE -type f -name '*.log' | xargs rm -f
423
424 - publisher:
425     name: archive-artifacts
426     publishers:
427       - archive:
428           artifacts: '{artifacts}'
429           allow-empty: true
430           fingerprint: true
431           latest-only: true
432
433 - publisher:
434     name: publish-coverage
435     publishers:
436       - cobertura:
437           report-file: "coverage.xml"
438           only-stable: "true"
439           health-auto-update: "false"
440           stability-auto-update: "false"
441           zoom-coverage-chart: "true"
442           targets:
443             - files:
444                 healthy: 10
445                 unhealthy: 20
446                 failing: 30
447             - method:
448                 healthy: 50
449                 unhealthy: 40
450                 failing: 30
451
452 # The majority of the email-ext plugin options are set to the default
453 # for this macro so they can be managed through Jenkins' global
454 # settings.
455 - publisher:
456     name: email-jenkins-admins-on-failure
457     publishers:
458       - email-ext:
459           content-type: text
460           attach-build-log: true
461           compress-log: true
462           always: false
463           failure: true
464           send-to:
465             - recipients
466
467 # Email PTL publishers
468 - email_ptl_defaults: &email_ptl_defaults
469     name: 'email_ptl_defaults'
470     content-type: text
471     attach-build-log: true
472     compress-log: true
473     always: true
474     subject: '{subject}'
475
476 - publisher:
477     name: 'email-apex-ptl'
478     publishers: &email_apex_ptl_defaults
479       - email-ext:
480           <<: *email_ptl_defaults
481           recipients: >
482             trozet@redhat.com
483 - publisher:
484     name: 'email-apex-os-net-config-ptl'
485     publishers:
486       <<: *email_apex_ptl_defaults
487 - publisher:
488     name: 'email-apex-puppet-tripleo-ptl'
489     publishers:
490       <<: *email_apex_ptl_defaults
491 - publisher:
492     name: 'email-apex-tripleo-heat-templates-ptl'
493     publishers:
494       <<: *email_apex_ptl_defaults
495
496 - publisher:
497     name: 'email-armband-ptl'
498     publishers:
499       - email-ext:
500           <<: *email_ptl_defaults
501           recipients: >
502             bob.monkman@arm.com
503
504 - publisher:
505     name: 'email-auto-ptl'
506     publishers:
507       - email-ext:
508           <<: *email_ptl_defaults
509           recipients: >
510             tina.tsou@arm.com
511
512 - publisher:
513     name: 'email-availability-ptl'
514     publishers:
515       - email-ext:
516           <<: *email_ptl_defaults
517           recipients: >
518             fuqiao@chinamobile.com
519
520 - publisher:
521     name: 'email-bamboo-ptl'
522     publishers:
523       - email-ext:
524           <<: *email_ptl_defaults
525           recipients: >
526             donaldh@cisco.com
527
528 - publisher:
529     name: 'email-barometer-ptl'
530     publishers:
531       - email-ext:
532           <<: *email_ptl_defaults
533           recipients: >
534             aasmith@redhat.com
535
536 - publisher:
537     name: 'email-bottlenecks-ptl'
538     publishers:
539       - email-ext:
540           <<: *email_ptl_defaults
541           recipients: >
542             gabriel.yuyang@huawei.com
543
544 - publisher:
545     name: 'email-calipso-ptl'
546     publishers:
547       - email-ext:
548           <<: *email_ptl_defaults
549           recipients: >
550             korlev@cisco.com
551
552 - publisher:
553     name: 'email-clover-ptl'
554     publishers:
555       - email-ext:
556           <<: *email_ptl_defaults
557           recipients: >
558             stephen.wong1@huawei.com
559
560 - publisher:
561     name: 'email-compass4nfv-ptl'
562     publishers: &email_compass4nfv_ptl_defaults
563       - email-ext:
564           <<: *email_ptl_defaults
565           recipients: >
566             chigang@huawei.com
567 - publisher:
568     name: 'email-compass-containers-ptl'
569     publishers:
570       <<: *email_compass4nfv_ptl_defaults
571
572 - publisher:
573     name: 'email-conductor-ptl'
574     publishers:
575       - email-ext:
576           <<: *email_ptl_defaults
577           recipients: >
578             limingjiang@huawei.com
579
580 - publisher:
581     name: 'email-container4nfv-ptl'
582     publishers:
583       - email-ext:
584           <<: *email_ptl_defaults
585           recipients: >
586             jiaxuan@chinamobile.com
587
588 - publisher:
589     name: 'email-copper-ptl'
590     publishers:
591       - email-ext:
592           <<: *email_ptl_defaults
593           recipients: >
594             aimeeu.opensource@gmail.com
595
596 - publisher:
597     name: 'email-cperf-ptl'
598     publishers:
599       - email-ext:
600           <<: *email_ptl_defaults
601           recipients: >
602             matt.welch@intel.com
603
604 - publisher:
605     name: 'email-daisy-ptl'
606     publishers:
607       - email-ext:
608           <<: *email_ptl_defaults
609           recipients: >
610             hu.zhijiang@zte.com.cn
611
612 - publisher:
613     name: 'email-doctor-ptl'
614     publishers:
615       - email-ext:
616           <<: *email_ptl_defaults
617           recipients: >
618             r-mibu@cq.jp.nec.com
619
620 - publisher:
621     name: 'email-domino-ptl'
622     publishers:
623       - email-ext:
624           <<: *email_ptl_defaults
625           recipients: >
626             ulas.kozat@huawei.com
627
628 - publisher:
629     name: 'email-dovetail-ptl'
630     publishers:
631       - email-ext:
632           <<: *email_ptl_defaults
633           recipients: >
634             hongbo.tianhongbo@huawei.com
635
636 - publisher:
637     name: 'email-dpacc-ptl'
638     publishers:
639       - email-ext:
640           <<: *email_ptl_defaults
641           recipients: >
642             denglingli@chinamobile.com
643
644 - publisher:
645     name: 'email-enfv-ptl'
646     publishers:
647       - email-ext:
648           <<: *email_ptl_defaults
649           recipients: >
650             JBuchanan@advaoptical.com
651
652 - publisher:
653     name: 'email-escalator-ptl'
654     publishers:
655       - email-ext:
656           <<: *email_ptl_defaults
657           recipients: >
658             kong.wei2@zte.com.cn
659
660 - publisher:
661     name: 'email-fastpathmetrics-ptl'
662     publishers:
663       - email-ext:
664           <<: *email_ptl_defaults
665           recipients: >
666             maryam.tahhan@intel.com
667
668 - publisher:
669     name: 'email-fds-ptl'
670     publishers:
671       - email-ext:
672           <<: *email_ptl_defaults
673           recipients: >
674             fbrockne@cisco.com
675
676 - publisher:
677     name: 'email-fuel-ptl'
678     publishers:
679       - email-ext:
680           <<: *email_ptl_defaults
681           recipients: >
682             gelkinbard@mirantis.com
683
684 - publisher:
685     name: 'email-functest-ptl'
686     publishers:
687       - email-ext:
688           <<: *email_ptl_defaults
689           recipients: >
690             cedric.ollivier@orange.com
691
692 - publisher:
693     name: 'email-ipv6-ptl'
694     publishers:
695       - email-ext:
696           <<: *email_ptl_defaults
697           recipients: >
698             bh526r@att.com
699
700 - publisher:
701     name: 'email-joid-ptl'
702     publishers:
703       - email-ext:
704           <<: *email_ptl_defaults
705           recipients: >
706             artur.tyloch@canonical.com
707
708 - publisher:
709     name: 'email-kvmfornfv-ptl'
710     publishers:
711       - email-ext:
712           <<: *email_ptl_defaults
713           recipients: >
714             raghuveer.reddy@intel.com
715
716 - publisher:
717     name: 'email-models-ptl'
718     publishers:
719       - email-ext:
720           <<: *email_ptl_defaults
721           recipients: >
722             bs3131@att.com
723
724 - publisher:
725     name: 'email-moon-ptl'
726     publishers:
727       - email-ext:
728           <<: *email_ptl_defaults
729           recipients: >
730             ruan.he@orange.com
731
732 - publisher:
733     name: 'email-multisite-ptl'
734     publishers:
735       - email-ext:
736           <<: *email_ptl_defaults
737           recipients: >
738             joehuang@huawei.com
739
740 - publisher:
741     name: 'email-netready-ptl'
742     publishers:
743       - email-ext:
744           <<: *email_ptl_defaults
745           recipients: >
746             georg.kunz@ericsson.com
747
748 - publisher:
749     name: 'email-nfvbench-ptl'
750     publishers:
751       - email-ext:
752           <<: *email_ptl_defaults
753           recipients: >
754             ahothan@cisco.com
755
756 - publisher:
757     name: 'email-octopus-ptl'
758     publishers:
759       - email-ext:
760           <<: *email_ptl_defaults
761           recipients: >
762             ulrich.kleber@huawei.com
763
764 - publisher:
765     name: 'email-onosfw-ptl'
766     publishers:
767       - email-ext:
768           <<: *email_ptl_defaults
769           recipients: >
770             su.wei@huawei.com
771
772 - publisher:
773     name: 'email-openretriever-ptl'
774     publishers:
775       - email-ext:
776           <<: *email_ptl_defaults
777           recipients: >
778             jiaxuan@chinamobile.com
779
780 - publisher:
781     name: 'email-opera-ptl'
782     publishers:
783       - email-ext:
784           <<: *email_ptl_defaults
785           recipients: >
786             Yingjun.li@huawei.com
787
788 - publisher:
789     name: 'email-opnfvdocs-ptl'
790     publishers:
791       - email-ext:
792           <<: *email_ptl_defaults
793           recipients: >
794             sofia.wallin@ericsson.com
795
796 - publisher:
797     name: 'email-orchestra-ptl'
798     publishers:
799       - email-ext:
800           <<: *email_ptl_defaults
801           recipients: >
802             giuseppe.carella@fokus.fraunhofer.de
803
804 - publisher:
805     name: 'email-ovn4nfv-ptl'
806     publishers:
807       - email-ext:
808           <<: *email_ptl_defaults
809           recipients: >
810             trinath.somanchi@gmail.com
811
812 - publisher:
813     name: 'email-ovno-ptl'
814     publishers:
815       - email-ext:
816           <<: *email_ptl_defaults
817           recipients: >
818             wsmackie@juniper.net
819
820 - publisher:
821     name: 'email-ovsnfv-ptl'
822     publishers:
823       - email-ext:
824           <<: *email_ptl_defaults
825           recipients: >
826             MarkD.Graymark.d.gray@intel.com
827
828 - publisher:
829     name: 'email-parser-ptl'
830     publishers:
831       - email-ext:
832           <<: *email_ptl_defaults
833           recipients: >
834             shang.xiaodong@zte.com.cn
835
836 - publisher:
837     name: 'email-pharos-ptl'
838     publishers: &email_pharos_ptl_defaults
839       - email-ext:
840           <<: *email_ptl_defaults
841           recipients: >
842             jack.morgan@intel.com
843 - publisher:
844     name: 'email-pharos-tools-ptl'
845     publishers:
846       <<: *email_pharos_ptl_defaults
847
848 - publisher:
849     name: 'email-promise-ptl'
850     publishers:
851       - email-ext:
852           <<: *email_ptl_defaults
853           recipients: >
854             kunzmann@docomolab-euro.com
855
856 - publisher:
857     name: 'email-qtip-ptl'
858     publishers:
859       - email-ext:
860           <<: *email_ptl_defaults
861           recipients: >
862             wu.zhihui1@zte.com.cn
863
864 - publisher:
865     name: 'email-releng-ptl'
866     publishers: &email_releng_ptl_defaults
867       - email-ext:
868           <<: *email_ptl_defaults
869           recipients: >
870             fatih.degirmenci@ericsson.com
871 - publisher:
872     name: 'email-releng-anteater-ptl'
873     publishers:
874       <<: *email_releng_ptl_defaults
875 - publisher:
876     name: 'email-releng-testresults-ptl'
877     publishers:
878       <<: *email_releng_ptl_defaults
879 - publisher:
880     name: 'email-releng-utils-ptl'
881     publishers:
882       <<: *email_releng_ptl_defaults
883 - publisher:
884     name: 'email-releng-xci-ptl'
885     publishers:
886       <<: *email_releng_ptl_defaults
887
888 - publisher:
889     name: 'email-samplevnf-ptl'
890     publishers:
891       - email-ext:
892           <<: *email_ptl_defaults
893           recipients: >
894             deepak.s@intel.com
895
896 - publisher:
897     name: 'email-sdnvpn-ptl'
898     publishers:
899       - email-ext:
900           <<: *email_ptl_defaults
901           recipients: >
902             tim.irnich@ericsson.com
903
904 - publisher:
905     name: 'email-securityscanning-ptl'
906     publishers:
907       - email-ext:
908           <<: *email_ptl_defaults
909           recipients: >
910             lhinds@redhat.com
911
912 - publisher:
913     name: 'email-sfc-ptl'
914     publishers:
915       - email-ext:
916           <<: *email_ptl_defaults
917           recipients: >
918             ManuelBuilmbuil@suse.com
919
920 - publisher:
921     name: 'email-snaps-ptl'
922     publishers:
923       - email-ext:
924           <<: *email_ptl_defaults
925           recipients: >
926             s.pisarski@cablelabs.com
927
928 - publisher:
929     name: 'email-stor4nfv-ptl'
930     publishers:
931       - email-ext:
932           <<: *email_ptl_defaults
933           recipients: >
934             shane.wang@intel.com
935
936 - publisher:
937     name: 'email-storperf-ptl'
938     publishers:
939       - email-ext:
940           <<: *email_ptl_defaults
941           recipients: >
942             mark.beierl@emc.com
943
944 - publisher:
945     name: 'email-ves-ptl'
946     publishers:
947       - email-ext:
948           <<: *email_ptl_defaults
949           recipients: >
950             bryan.sullivan@att.com
951
952 - publisher:
953     name: 'email-vswitchperf-ptl'
954     publishers:
955       - email-ext:
956           <<: *email_ptl_defaults
957           recipients: >
958             sridhar.rao@spirent.com
959
960 - publisher:
961     name: 'email-yardstick-ptl'
962     publishers:
963       - email-ext:
964           <<: *email_ptl_defaults
965           recipients: >
966             ross.b.brattain@intel.com