Tengo un servidor CI con una interfaz de línea de comandos que me permite iniciar un trabajo de forma remota ( jenkins
servidor CI y la jenkins-cli.jar
herramienta).
Después de iniciar el trabajo, tail -f
el registro (perdón por el comando desordenado):
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\""
Después de que el trabajo se completa con éxito, generalmente después de al menos 5 minutos, obtengo la siguiente línea en la salida:
Finished: SUCCESS
¿Hay una buena manera de dejar de seguir el registro en este momento? es decir, hay como un tail_until 'some line' my-file.log
comando?
BONIFICACIÓN: crédito adicional si puede proporcionar una respuesta que devuelva 0 cuando el ÉXITO coincida, 1 cuando la FALLA coincida, ¡y su solución funciona en mac! (que creo que está basado en bsd)