2009-09-12 4 views
6

Ich benutze phing für einige automatische Build-Prozess auf ein Projekt, und fragte mich: Wie kann ich das vollständige Protokoll per E-Mail bekommen?phing: Senden Sie das vollständige Protokoll per E-Mail?


Wenn ich phing über die Befehlszeile starte, wird das Erstellungsprotokoll angezeigt; Ich würde es gerne:

  • per E-Mail verschickt,
  • an mehrere Empfänger,
  • ob die Build erfolgreich war oder nicht
  • ideal: mit einem Thema für die E-Mail zu sagen, wenn die Build erfolgreich ist oder
  • gescheitert
  • ideal: eine Art von HTML-Mail, mit der Formatierung, Farben, ... würde

schön, ich habe zwar über den Ausgang vonkochendzu dem mail Befehl, aber ich möchte eine Lösung, die auf Linux und Windows funktioniert, und erfordert keine Installation zusätzlicher Software ...

Hat jemand eine Idee?


Als Nebenbemerkung: Ich habe darüber nachgedacht, eine Art von „report“ Ziel Zugabe am Ende des Build gestartet, aber:

  • Es ist nur nicht der Fall sind, wenn alle vorherigen Ziele gestartet darin versagen
  • ich sehe nicht, wie das bekommen Voll log

Antwort

0

Dieses etwas, das Sie ohne die Installation zusätzlicher Software tun können, vorausgesetzt, Sie sind in der Lage, ein Skript für einen linux-Server zu schreiben, müssen Sie Zugriff auf.

Ein PHP-Skript verwenden Sie den Befehl exec() oder system(), um das vollständige Protokoll zu erhalten. Senden Sie dies als http-Daten mit curl an Ihr Remote-Skript auf dem Linux-Server, auf den Sie Zugriff haben.

Auf dem Server können Sie ein Skript schreiben, um die HTTP-Post-Variable zu akzeptieren und den Inhalt an Ihre E-Mail-Adresse (n) zu senden. Und du denkst vielleicht "Oh nein, ich habe offenen Zugang zu Leuten, die mir eine E-Mail schicken!" Wenn sie Ihre Adresse kennen oder Sie ein Web-Kontaktformular haben ... gleiches Angebot. Also das ist eine Lösung;) Wenn Sicherheit ein Problem ist, senden Sie es über https.

+0

War das nützlich? Wenn nicht, kann ich entfernen. –

3

Ich denke, Sie könnten eine benutzerdefinierte Phing Build Listener/Logger mit Ihrem beschriebenen Anwendungsfall zu schreiben. Werfen Sie einen Blick auf diesen ausgezeichneten Blog post von Philip Norton, um Sie in Schwung zu bringen.

+0

Danke für diese Antwort!Es ist jetzt ein bisschen spät (das Projekt, an dem ich gearbeitet habe, ist fertig ^^), aber ich werde vielleicht eines Tages versuchen, nur um zu wissen, wie ich das zur Arbeit bringen kann ;-) –

4

Tolle Idee; gerade ein Ticket hinzugefügt, um dies zu implementieren @http://phing.info/trac/ticket/539

+1

Hallo, freut mich, dich hier zu sehen ^^ ;; Ich habe diese Frage völlig vergessen, seit dem Ende des Projekts brauchte ich das für ... Aber trotzdem, ziemlich sicher, dass das für jemanden eines Tages nützlich sein wird ;-) –

0

Wir verwenden etw. so in ein PHP-Skript verpackt.

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); 

Funktioniert gut.