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