phing: отправка полного журнала по электронной почте? - PullRequest
6 голосов
/ 12 сентября 2009

Я использую phing для какого-то процесса автоматического построения проекта, и мне было интересно: как я могу получить полный журнал по электронной почте?


Когда я запускаю phing из командной строки, отображается журнал здания; Я хотел бы это:

  • отправлено по электронной почте,
  • нескольким получателям,
  • была ли сборка успешной или неудачной
  • в идеале: с темой письма, сообщающей, была ли сборка успешной или неудачной
  • в идеале: какая-то HTML-почта, с форматированием, цветами, ... было бы неплохо

Хотя я и собирался передать вывод phing в команду mail, но мне бы хотелось решение, которое работает как в Linux, так и в Windows, и не требует установки какого-либо дополнительного программного обеспечения ...

У кого-нибудь есть идея?


Как примечание: я думал о добавлении какой-то цели «отчета», запущенной в конце сборки, но:

  • Запускается, только если все предыдущие цели не сработали
  • Я не вижу, как получить полный лог в нем

Ответы [ 5 ]

4 голосов
/ 02 сентября 2010

Отличная идея; только что добавил билет для реализации этого @ http://phing.info/trac/ticket/539

3 голосов
/ 26 ноября 2009

Полагаю, вы могли бы написать собственный прослушиватель / регистратор сборки Phing для обработки вашего описанного варианта использования. Взгляните на этот великолепный блог post от Philip Norton, чтобы вы смогли продолжить.

0 голосов
/ 09 августа 2011

Мы используем что-н. как это, завернутый в скрипт php.

exec('phing' . $target . ' -f ' . $buildfile . ' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"', $out); //remove bash color
$info = implode("\n", $out);
$subj = sprintf('Deployed %s', $catalogInfo['name']);
mail($data->email, $subj, $info); 

Работает нормально.

0 голосов
/ 24 ноября 2009
0 голосов
/ 27 октября 2009

Это то, что вы можете сделать без установки дополнительного программного обеспечения, при условии, что вы можете написать скрипт для сервера linux, к которому у вас есть доступ.

Сделайте так, чтобы скрипт php использовал команду exec () или system () для получения полного журнала. Отправьте это как данные HTTP-сообщения, используя curl, в свой удаленный скрипт на сервере Linux, к которому у вас есть доступ.

На сервере у вас есть доступ к написанию сценария для принятия переменной http post и отправки содержимого на ваш адрес (а) электронной почты. И вы можете подумать: «О нет, у меня есть открытый доступ к людям, пишущим мне по электронной почте!» Если они знают ваш адрес или у вас есть веб-контактная форма ... та же сделка. Так что это решение;) Если вас беспокоит безопасность, отправьте ее по https.

...