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