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()
{
// 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;
}
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()
{
/** @var \Swift_SmtpTransport $transport */