Выбор ответа Junior CI: пайплайны и артефакты спрашивают часто обновлено

Кеш или артефакт в CI

Вопрос

Джоба build собирает dist/, джоба deploy в следующей стадии должна его выкатить. Как правильно передать dist/?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Через artifacts: они гарантированно доступны следующим джобам. Артефакты предназначены для передачи результатов между джобами и хранятся гарантированно.

Варианты ответа

  1. Через cache: он быстрее и общий для всех джоб пайплайна
  2. Пересобрать dist/ заново в джобе deploy из того же коммита
  3. Закоммитить dist/ в репозиторий из пайплайна
  4. Через artifacts: они гарантированно доступны следующим джобамправильный ответ

Разбор

Артефакты предназначены для передачи результатов между джобами и хранятся гарантированно. Кеш best effort: он может промахнуться, и деплой уедет без файлов. Пересборка в deploy нарушает принцип «собрал один раз, выкатываешь то же самое». Коммит сборки в репозиторий засоряет историю и порождает гонки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.