У мене є сервер 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, коли SUCCESS збігається, 1 коли збіг невдачі, і ваше рішення працює на mac! (що, на мою думку, засноване на bsd)