GitHub Actions artifacts: передать сборку между jobs
Jobs GitHub Actions запускаются в отдельных окружениях и не делят файловую систему. Сохраните сборку upload-artifact, а в следующем job получите её через download-artifact. ????? ??????????? ?????????? ???????? ?????? ??????? ? ????????? ?????? ? ??????? ?????.
Рабочий пример
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-скрипт из репозитория.