Можно ли анализировать логи job самим gitlab-runner'ом?
В результате выполнения job, в его логе есть информация, которую надо посмотреть и по результатам что-то выполнить.
Например, отправить письмо, есть в логе есть FAILED.
Может ли это как-то поручить раннеру в .gitlab-ci.yml ?
Ведь логи джоба находятся на самом сервере гитлаба, а раннер - где угодно на другом узле?
а почему результат тестов всегда успешный? Вот сделали бы корректно, можно было бы легко настроить дополнительный скрипт через allow_failure (что-бы pipeline не обрывался) и after_script
Как раз так корректно, процедура тестирования проходит успешно.
В ней много тестов и если один/несколько FAILED по прикладным причинам - это не повод прерывать джоб и считать весь джоб failed.
В общем, наиболее подходящим вариантом стало дублирование stdout в локальный файл на раннере.
Дальше его можно разбирать хоть в этом же скрипте, хоть передавать дальше.
Алексей, можно с другой стороны посмотреть - не пытаться сохранить лог раннера, а сохранить вывод той команды, которая тебя интересует. SomeCommand 2>&1 | tee SomeFile.txt
Можно даже в рамках одного шага потом прочитать этот файл и через if сделать exit 1 или exit 0
Ну да, я и собирался перенаправлять stdout в файл, если не посоветуют более оптимального варианта.
Из минусов - в логе джоба информации уже не будет, придется смотреть артефакты.