GitHub Actions artifacts: передать сборку между jobs

Категория: Backend · Язык: YAML · Обновлено:

Jobs GitHub Actions запускаются в отдельных окружениях и не делят файловую систему. Сохраните сборку upload-artifact, а в следующем job получите её через download-artifact. ????? ??????????? ?????????? ???????? ?????? ??????? ? ????????? ?????? ? ??????? ?????.

Рабочий пример

YAML
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: npm ci && npm run build
      - uses: actions/upload-artifact@v4
        with:
          name: web-dist
          path: dist/
          if-no-files-found: error
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: web-dist
          path: dist/

needs задаёт порядок jobs, а name должен совпадать при загрузке и скачивании. if-no-files-found: error превращает пустой результат сборки в ошибку.

Частый вопрос

Нужен ли checkout в job deploy?

Нет, если deploy использует только артефакт. Checkout нужен, когда сценарий читает код или deploy-скрипт из репозитория.