Выбор ответа Junior CI: пайплайны и артефакты спрашивают часто обновлено
Кеш или артефакт в CI
Вопрос
Джоба build собирает dist/, джоба deploy в следующей стадии должна его выкатить. Как правильно передать dist/?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Через artifacts: они гарантированно доступны следующим джобам. Артефакты предназначены для передачи результатов между джобами и хранятся гарантированно.
Варианты ответа
- Через cache: он быстрее и общий для всех джоб пайплайна
- Пересобрать
dist/заново в джобе deploy из того же коммита - Закоммитить
dist/в репозиторий из пайплайна - Через artifacts: они гарантированно доступны следующим джобамправильный ответ
Разбор
Артефакты предназначены для передачи результатов между джобами и хранятся гарантированно. Кеш best effort: он может промахнуться, и деплой уедет без файлов. Пересборка в deploy нарушает принцип «собрал один раз, выкатываешь то же самое». Коммит сборки в репозиторий засоряет историю и порождает гонки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «CI: пайплайны и артефакты»
- Какие сервисы пересобрать в монорепо
- Следующая версия по Conventional Commits
- Ключ кеша зависимостей
- Conventional Commits
- Как ускорить пайплайн
- GitHub Actions: отмена устаревших запусков
- GitHub Actions: раннер и зависимость джоб
- GitLab CI: артефакты со сроком жизни