Eu tenho um servidor de IC com uma interface de linha de comando que permite iniciar remotamente um trabalho ( jenkins
servidor de CI e a jenkins-cli.jar
ferramenta).
Depois de iniciar o trabalho tail -f
no log (desculpe pelo comando confuso):
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\""
Depois que o trabalho é concluído com êxito, geralmente após pelo menos 5 minutos, recebo a seguinte linha na saída:
Finished: SUCCESS
Existe uma boa maneira de parar de seguir o log neste momento? ou seja, existe como um tail_until 'some line' my-file.log
comando?
BÔNUS: crédito extra, se você puder fornecer uma resposta que retorne 0 quando o SUCESSO corresponder, 1 quando o FAILURE corresponder e sua solução funcionar no mac! (que eu acredito que é baseado em bsd)