Email plugin now looks in the yaml file for an addresses setting. All these addresses will be mailed with a pass or fail message.

This commit is contained in:
meadsteve 2013-06-01 13:57:39 +01:00
parent a4c051e024
commit f8407e39c8

View file

@ -63,8 +63,34 @@ class Email implements \PHPCI\Plugin
*/ */
public function execute() public function execute()
{ {
// Without some email addresses in the yml file then we
// can't do anything.
if (!isset($this->options['addresses'])) {
return false;
}
return true; $addresses = $this->options['addresses'];
$sendFailures = array();
if($this->phpci->getSuccessStatus()) {
$body = "";
$sendFailures = $this->sendSeparateEmails(
$addresses,
"PASSED",
$body
);
}
else {
$body = "";
$sendFailures = $this->sendSeparateEmails(
$addresses,
"FAILED",
$body
);
}
// This is a success if we've not failed to send anything.
return (count($sendFailures) == 0);
} }
/** /**
@ -85,6 +111,18 @@ class Email implements \PHPCI\Plugin
return $failedAddresses; return $failedAddresses;
} }
public function sendSeparateEmails(array $toAddresses, $subject, $body)
{
$failures = array();
foreach($toAddresses as $address) {
$newFailures = $this->sendEmail($address, $subject, $body);
foreach($newFailures as $failure) {
$failures[] = $failure;
}
}
return $failures;
}
protected function loadSwiftMailerFromConfig() protected function loadSwiftMailerFromConfig()
{ {
/** @var \Swift_SmtpTransport $transport */ /** @var \Swift_SmtpTransport $transport */