Build job сохраняет artifact (jar/docker image tag/dist), test/deploy объявляет зависимость (needs/dependencies или download-artifact) и забирает тот же билд, не собирая заново — гарантия «тестируем то, что выкатим».
Разбор
- GitLab:
artifacts + dependencies; GitHub: upload/download-artifact.
- Docker: push image в registry с digest/SHA.
- Проверяйте checksum/версию перед деплоем.
- Разный билд на test и prod — классическая ловушка «у нас на stage ок».
Итог
Один артефакт на весь путь pipeline — основа воспроизводимости.