Автоматизация сборки с CodeBuild и buildspec.yml

Автоматизация развёртывания на AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Что делает CodeBuild

  • CodeBuild — полностью управляемый сервис сборки
  • Не требует настройки и обслуживания серверов
  • Запускает сборку во временном контейнере
  • Масштабируется автоматически; оплата только за минуты сборки
  • Интегрируется с CodePipeline как этап Build

 

1-codebuild-managed-service-temporary-container-lifecycle.png

Автоматизация развёртывания на AWS

Файл buildspec.yml

  • buildspec.yml: YAML-файл в корне исходного кода
  • Определяет, что делает CodeBuild во время сборки
  • Четыре этапа выполняются по порядку:
    • install: установка зависимостей и инструментов
    • pre_build: задачи подготовки перед сборкой
    • build: компиляция кода, запуск тестов
    • post_build: упаковка артефактов, очистка

buildspec

Автоматизация развёртывания на AWS

Реальный пример buildspec.yml

  • install: pip install -r requirements.txt
  • pre_build: [ -z "$DB_URL" ] && exit 1
  • build: pytest tests/
  • post_build: zip -r app.zip ., затем echo "Build completed"

Редактор кода в светлой теме с файлом buildspec.yml, где показаны четыре этапа: build запускает pytest tests, а post_build упаковывает код в app.zip — итоговый артефакт конвейера

Автоматизация развёртывания на AWS

Настройка среды сборки

 

4-codebuild-environment-config-compute-envvars-caching.png

  • Типы вычислительных ресурсов: small, medium, large, 2xlarge
    • Выбираются в зависимости от сложности сборки и требуемой скорости
  • Переменные окружения: передают конфигурацию в сборку
    • Секреты храните в Parameter Store или Secrets Manager
  • Кэширование зависимостей: кэширует загруженные пакеты между сборками
    • Значительно сокращает время сборки для крупных проектов
Автоматизация развёртывания на AWS

Вывод артефактов и интеграция с конвейером

 

5-codebuild-artifact-output-s3-codepipeline-handoff.png

  • Раздел artifacts определяет, что выводит CodeBuild
  • files: список файлов или шаблонов; base-directory: корневой путь
  • Итоговый артефакт хранится в S3 и автоматически передаётся на следующий этап
  • Неверные пути к артефактам приводят к сбою развёртывания даже при успешной сборке
Автоматизация развёртывания на AWS

Полная цепочка сборки, тестирования и развёртывания

  • Разработчик отправляет код в CodeCommit
  • CodePipeline запускается автоматически
  • CodeBuild: install -> pre_build -> build -> post_build
  • Артефакт сборки передаётся в CodeDeploy
  • Приложение развёртывается в целевой среде

6-full-cicd-chain-codecommit-codebuild-phases-codedeploy.png

Автоматизация развёртывания на AWS

Давайте потренируемся!

Автоматизация развёртывания на AWS

Preparing Video For Download...