Один артефакт проходит все среды · R8
R8. CI/CD и артефакты
Цель
Собрать воспроизводимый pipeline и понимать, почему delivery — это больше, чем YAML-файл.
Что освоить
- lint, test, build, scan, publish, deploy
- runners, artifacts и cache
- immutable image tags и environments
- approvals, secrets и smoke test
- promotion и rollback
Материалы основного пути
- GitHub Actions — документация
- Начать здесь. workflow syntax, events, jobs, steps, artifacts и secrets
- DORA: Continuous delivery
- Обязательно. deployment automation, test automation и deployment pipeline
- GitHub Skills
- Практика. Hello GitHub Actions и Publish packages exercises
Практика
PR запускает tests; tag собирает image; staging получает тот же image; production требует approval.
Проверьте результат
Падающий тест блокирует выпуск; в проверенных логах нет секретов; между средами продвигается тот же артефакт. Выполните rollback и запишите фактическое время; для учебного стенда можно поставить цель до 10 минут.
Вопросы, условия приёмки и доказательства
Ответьте и покажите
- Почему один artifact должен проходить все среды?
- Чем cache отличается от artifact?
Условия приёмки
- Bad test blocks pipeline
- Один digest promoted
- Secrets masked, smoke и rollback доказаны
Учебный отказ: Выпустить заведомо failing version и восстановить предыдущий digest в пределах 10 минут.
Артефакт: URL pipeline/release + immutable image digest + rollback log
Падающий тест блокирует выпуск; staging/prod получают один digest; проверенные логи не раскрывают секреты. Выполнен rollback того же артефакта, записано фактическое время и объяснены отклонения от учебной цели.
Хорошее доказательство: URL CI/release + digest во всех средах + timed rollback log.
Недостаточно: Пересборка image для production или ручной deploy без audit trail и approval.
Углубление и справочные материалы
Темы для углубления
- progressive delivery
- ephemeral environments
- provenance и policy gates
Добавить preview environment, artifact attestation и canary/blue-green rollout с автоматическим abort по smoke.
Результат: Один immutable artifact продвигается между средами; provenance проверяется; неуспешный rollout откатывается автоматически.
Дополнительные материалы
- GitLab CI/CD documentation
Справочник. jobs, stages, needs, artifacts, cache и environments
- CI/CD простым языком
- Microsoft Learn: реализация CI
- SLSA Specification 1.2
Дополнительно. Build track, provenance и artifact verification