Что такое артефакты в pipeline
Что проверяют
Работали ли вы с CI не только как потребитель зелёной галочки. Для тестировщика артефакт это то, чем вы доказываете результат прогона: отчёт, лог, скриншот, трейс. Интервьюер смотрит, понимаете ли вы, откуда берётся собранный билд на стенде и почему после падения теста иногда нечего показать разработчику.
Как отвечать
Артефакт это файл или набор файлов, которые джоба произвела и передала дальше: следующей джобе, человеку или в хранилище. По смыслу они делятся на две группы.
Артефакты сборки: бинарник, apk, образ контейнера, архив со статикой. Главное правило здесь одно: собрали один раз, и по всем стендам едет ровно тот же файл. Иначе тестировали одно, а в прод уехало другое.
Артефакты прогона: отчёт в формате JUnit или Allure, скриншоты и видео падений, трейс, HAR, логи приложения, отчёт о покрытии. Это то, что тестировщик поднимает из джобы после каждого запуска.
Отдельно стоит сказать про срок хранения и размер: артефакты занимают место и чистятся по расписанию, поэтому ссылку на отчёт недельной давности из задачи часто открыть уже нельзя.
Артефакт нужно отличать от кэша. Кэш ускоряет сборку и может быть выброшен без последствий, артефакт это результат, который обязан пережить джобу.
Где спотыкаются
Настраивают выгрузку артефактов только для успешного прогона. Именно упавший прогон и нужен: если отчёт и скриншоты публикуются лишь при успехе, разбирать падение приходится вслепую, а шаг выгрузки обязан выполняться всегда.
Складывают в артефакты всё подряд, включая конфиги с токенами и дампы с боевыми данными. Артефакт доступен всем, у кого есть доступ к сборке, и живёт в хранилище дольше, чем о нём помнят.
Не связывают артефакт с версией. Отчёт без коммита, номера сборки и окружения бесполезен уже через день: непонятно, на каком коде получено падение и воспроизводится ли оно сейчас.