Ich habe einen CI-Server mit einer Befehlszeilenschnittstelle, mit der ich einen Auftrag remote starten kann ( jenkins
CI-Server und das jenkins-cli.jar
Tool).
Nachdem ich den Job gekickt habe habe ich tail -f
das Protokoll (sorry für den chaotischen Befehl):
ssh -t my-jenkins-host.com "tail -f \"/var/lib/jenkins/jobs/$job_name/builds/\`ls -ltr /var/lib/jenkins/jobs/$job_name/builds/ | grep '^l' | tail -n 1|awk '{print \$9}'\`/log\""
Nachdem der Auftrag erfolgreich abgeschlossen wurde, wird in der Regel nach mindestens 5 Minuten die folgende Zeile in der Ausgabe angezeigt:
Finished: SUCCESS
Gibt es eine gute Möglichkeit, das Protokoll an dieser Stelle nicht mehr zu verfolgen? dh gibt es wie ein tail_until 'some line' my-file.log
befehl?
BONUS: Zusätzliches Guthaben, wenn Sie eine Antwort liefern können, die 0 zurückgibt, wenn SUCCESS übereinstimmt, 1, wenn FAILURE übereinstimmt und Ihre Lösung auf einem Mac funktioniert! (Was ich glaube, ist BSD-basiert)