download-artifact
Тема дорожной карты · GitHub Actions
actions/download-artifact — официальный action GitHub Actions для получения результатов сборки и отчётов о тестах, загруженных более ранним job пайплайна с помощью actions/upload-artifact. Это позволяет многоджобовым CI/CD-workflow обмениваться файлами между runner. Action указывается через uses: actions/download-artifact@v4 с параметрами name: артефакта и необязательным path: — каталогом назначения; если путь не указан, GitHub Actions скачивает артефакт в каталог с именем артефакта в текущем рабочем пространстве. В паттернах fan-out/fan-in job сборки загружает скомпилированный бинарный файл как артефакт, а несколько нижестоящих jobs тестирования используют actions/download-artifact параллельно для запуска различных тестовых наборов против одного и того же артефакта без повторной сборки. По умолчанию артефакты, скачанные через actions/download-artifact, ограничены текущим запуском workflow, однако входные параметры github-token: и run-id: позволяют получать артефакты из других запусков и репозиториев для продвинутой оркестрации непрерывной интеграции. Совместное использование actions/upload-artifact и actions/download-artifact — лучшая практика GitHub Actions для передачи больших файлов между jobs при сохранении компактности рабочих пространств runner и чистоты логов пайплайна.
Как это работает
download-artifact: артефакты (actions/upload-artifact, download-artifact) персистят файлы между jobs внутри workflow (и после завершения — для скачивания через UI). Кеш (actions/cache) ускоряет повторную работу, сохраняя + восстанавливая директории по hash-ключу (hashFiles('package-lock.json')). Cache-hit драматичен для больших деревьев зависимостей. Scope кеша: ветка + ключ; кеш main-ветки расшарен на PR из форков read-only.
Когда применять
Кеш — для ~/.npm, ~/.pnpm-store, ~/.cargo, ~/.gradle, ~/.m2, Docker-слоёв через buildx cache, OS-пакетов. Артефакты — для передачи build-output между jobs (build → test → deploy с общим скомпилированным output). restore-keys: — fallback на cache-miss. Retention-политика — артефакты по дефолту 90 дней.
Типичные ошибки
Ловушки download-artifact: cache-key никогда не меняется (кешируете раз, всегда восстанавливаете тот же stale-кеш); кеш превышает 10GB/repo-лимит GitHub (старейшие entry вытесняются — иногда не те); дефолт retention артефактов 90 дней (стоимость storage растёт — снижайте для ephemeral-сборок).