У меня есть CI-сервер с интерфейсом командной строки, который позволяет мне удаленно запускать задание ( jenkins
CI-сервер и jenkins-cli.jar
инструмент).
После того, как я запускаю работу, я веду tail -f
журнал (извините за грязную команду):
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\""
После успешного завершения задания, обычно через 5 минут, я получаю следующую строку:
Finished: SUCCESS
Есть ли хороший способ прекратить бревно на этом этапе? т.е. есть ли tail_until 'some line' my-file.log
команда?
БОНУС: дополнительный кредит, если вы можете предоставить ответ, который возвращает 0, когда сопоставляется УСПЕХ, 1, когда сопоставляется ОТКАЗ, и ваше решение работает на Mac! (который, я считаю, основан на BSD)