У мене є сервер 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)