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