Как различаются кэш и артефакты в процессе CI/CD в GitLab?
Ответ от нейросети
sobes.tech AI
В GitLab CI/CD кэш и артефакты служат для разных целей:
-
Кэш (cache) — это временное хранилище, которое используется для ускорения сборок. Обычно туда кладут зависимости, скомпилированные библиотеки и другие промежуточные данные, чтобы не загружать и не пересобирать их заново при каждом запуске pipeline. Кэш сохраняется между разными job и pipeline, но не предназначен для долгосрочного хранения.
-
Артефакты (artifacts) — это результаты сборки, которые нужно сохранить после выполнения job и, возможно, передать в последующие стадии или скачать. Например, скомпилированные бинарники, отчёты тестов, логи. Артефакты хранятся в GitLab и доступны для загрузки или использования в других job в рамках одного pipeline.
Пример:
build_job:
script:
- ./gradlew build
cache:
paths:
- .gradle/
artifacts:
paths:
- build/libs/
expire_in: 1 week
Здесь .gradle/ кэшируется для ускорения сборки, а build/libs/ сохраняется как артефакт для последующего использования.