Скачивание артефактов через интерфейс GitVerse после завершения workflow.
Info
Файлы, сохраненные как артефакты (через actions/upload-artifact), хранятся на сервере и доступны для скачивания 30 дней.
Этот срок можно настроить вручную с помощью параметра retention-days. Например:
with:retention-days: 7
Максимальный общий объем артефактов на аккаунт — 500 Мб (см. раздел «Лимиты» в настройках учетной записи).
Создание и выгрузка артефакта
name: Пример использования upload-artifact для выгрузки артефактаon: workflow_dispatch: # Ручной запуск push: # Запуск при pushjobs: build: runs-on: ubuntu-latest steps: - run: echo "some data" > result.txt - uses: actions/upload-artifact@v4 with: name: my-artifact path: result.txt
Результат:
После выполнения шага в примере выше:
создается файл result.txt (командой echo);
этот файл сохраняется как артефакт с именем my-artifact с помощью действия upload-artifact.
Передача артефакта между заданиями
Чтобы передать файлы между задачами в одном workflow, используйте связку действий: actions/upload-artifact (сохранение) и actions/download-artifact (загрузка артефакта в другой задаче).
задача build создает файл result.txt и сохраняет его как артефакт (upload-artifact);
задача test (начинается после build благодаря needs: build) скачивает этот артефакт (download-artifact) и использует файл result.txt в своих шагах.
Info
Для передачи артефакта между задачами обязательно используйте параметр needs — это гарантирует правильный порядок выполнения задач.
Путь к скачанному артефакту по умолчанию совпадает с именем файла или директории, указанным при загрузке.
Пример расширенного использования
Действие upload-artifact можно вызывать не только напрямую в workflow, но и внутри [составных workflow. Это позволяет переиспользовать логику сохранения артефактов в разных проектах.
Подключаемый файл (композитный action):
name: Базовый пример composite action с upload-artifactruns: using: "composite" steps: - name: Hello world run: echo "Hello world" > hello.txt - uses: actions/upload-artifact@v4 with: name: hello-artifact path: hello.txt