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