AWS CodeBuild: настройка и тестирование
TL;DR
CodeBuild — управляемый сервис сборки от AWS для автоматизации сборки и тестирования, обычно используется вместе с CodePipeline. В статье показано, как создать проект сборки, настроить buildspec.yml, включить логирование и запустить тестовую сборку вручную или через конвейер.
Быстрые ссылки
- Настройка проекта сборки
- Тестирование сборки

Настройка проекта сборки
Если вы используете CodePipeline, создавайте проект CodeBuild через диалог «Add Build Stage» — тогда проект автоматически будет настроен на использование CodePipeline как источника. Если CodePipeline не используется, создайте проект через консоль CodeBuild и вручную укажите репозиторий в разделе источника.
Первое, что потребуется настроить — это окружение, в котором будет выполняться сборка. Для большинства проектов подойдут стандартные образы Amazon Linux 2 и предустановленные рантаймы. Если нужен полный контроль над окружением, укажите кастомный Docker-образ.

В разделе Advanced Settings для Environment можно изменить вычислительные ресурсы (тип сервера) и задать переменные окружения. Рекомендуется задавать секреты и креденшелы через AWS Secrets Manager или Parameter Store, не хранить их в buildspec.yml.
Важно: настройки VPC обычно оставляйте по умолчанию, если только вы не нуждаетесь в доступе к ресурсам внутри приватной сети (например, к внутренней базе данных). Пустые настройки VPC подходят для большинства публичных сборок.

Следующий важный шаг — конфигурация Buildspec. Buildspec — это YAML-шаблон, описывающий команды, которые выполнит CodeBuild. Вы можете положить файл buildspec.yml в корень репозитория или ввести команды вручную в настройках проекта для простых конфигураций.

Ниже — пример простого buildspec.yml для TypeScript-проекта, который устанавливает зависимости, собирает проект и запускает тесты. Обратите внимание, что версия и секции YAML следует форматировать корректно:
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
commands:
- npm install -g typescript
- npm install
pre_build:
commands:
- echo prebuild phase
build:
commands:
- echo Build started on `date`
- npm run build
- npm test
post_build:
commands:
- echo Build completed on `date`
cache:
paths:
- 'node_modules/**/*'
artifacts:
files:
- '**/*'
name: yourBuildName-$(date +%Y-%m-%d)Параметры в buildspec сильно зависят от языка/фреймворка и структуры вашего проекта — возможно, придётся добавить шаги для установки системных пакетов, подготовки среды или загрузки артефактов.
После того как buildspec готов, решите, куда логировать вывод сборки: в CloudWatch Logs или в S3. Для отладки предпочтительнее CloudWatch; для архивирования артефактов — S3.

Нажмите “Create Build Project” — проект будет создан и готов к использованию.
Критерии приёмки
- Проект создан и виден в консоли CodeBuild.
- buildspec.yml корректно парсится (CodeBuild не падает с ошибкой YAML).
- Логи сборки доступны в CloudWatch или S3.
- Сборка проходит локально и в CodeBuild (при одинаковых шагах).
Тестирование сборки
Обычно CodeBuild запускается как этап в CodePipeline. Если вы используете CodePipeline, закончите настройку стадии деплоя и создайте конвейер — он автоматически передаст исходники в CodeBuild и запустит сборку. Если вы хотите запустить сборку вручную, используйте консоль CodeBuild или AWS CLI:
aws codebuild start-build --project-name Эта команда поддерживает множество параметров и переопределений (overrides), позволяющих задать альтернативные переменные окружения, источник или артефакты для конкретного запуска.
В консоли по клику на конкретную сборку вы увидите логи и статус каждой команды — это основной источник информации при отладке ошибок.

Если любая команда завершится с ненулевым кодом возврата, сборка будет отмечена как проваленная. При использовании CodePipeline изменения в buildspec.yml обычно триггерят новые прогонки конвейера.
Когда CodeBuild не подходит
- Нужен постоянный агент с длинным временем непрерывной работы и состоянием между сборками — лучше использовать self-hosted runners.
- Требуется нестандартная сеть или аппаратное ускорение, недоступное в управляемом окружении.
- Необходима сложная оркестрация сборок между множеством сервисов — рассматривайте использования специализированных CI-решений или Kubernetes.
Альтернативные подходы
- Jenkins / GitLab CI / GitHub Actions — если нужен гибкий плагин-экосистема и собственное управление агентами.
- Self-hosted CodeBuild (через собственные Docker-образы) — если хотите контролировать окружение, но сохранить интеграцию с AWS.
Эвристики и модель принятия решений
- Если ваша инфраструктура уже в AWS и вы хотите минимизировать операционные затраты — выбирайте CodeBuild.
- Для быстрых, изолированных сборок без долгоживущего состояния — CodeBuild оптимален.
- Если нужна глубокая интеграция с внешними CI-плагинами — рассматривайте Jenkins или GitHub Actions.
Мини-методика: быстрая настройка за 10 минут
- Создайте проект в CodeBuild и укажите репозиторий.
- Выберите стандартный образ Amazon Linux 2 и нужную версию Node/Python/Java.
- Добавьте buildspec.yml в корень проекта с базовыми шагами install/build/test.
- Включите CloudWatch Logs.
- Запустите сборку вручную и проверьте логи.
Роль‑ориентированные чек‑листы
Разработчик:
- Убедиться, что локальная сборка проходит.
- Написать buildspec.yml с минимальными шагами.
DevOps:
- Настроить IAM роли и права для проекта CodeBuild.
- Настроить логирование и доступ к секретам.
QA:
- Добавить шаги тестирования в buildspec.
- Проверить, что упавшие тесты прерывают сборку.
Глоссарий (одна строка)
- Buildspec — YAML-файл, задающий последовательность шагов сборки для CodeBuild.
- Артефакт — результат сборки (бинарник, архив, отчёт), который можно сохранить в S3.
Полезные заметки и рекомендации
- Не храните секреты в buildspec.yml; используйте AWS Secrets Manager или SSM Parameter Store.
- Кэширование node_modules или других зависимостей существенно ускоряет повторные сборки.
- Для длительных операций разбивайте сборку на этапы и проверяйте промежуточные артефакты.
Краткое резюме
CodeBuild — удобный выбор для автоматической сборки и тестирования в AWS, особенно если вы уже используете CodePipeline. Основные задачи: выбрать окружение, корректно оформить buildspec.yml, настроить логирование и, при необходимости, подключить VPC/секреты. При правильной конфигурации CodeBuild быстро интегрируется в CI/CD-процессы и снижает операционные усилия.
Важно: начните с простого buildspec и добавляйте шаги по мере необходимости — это ускорит настройку и упростит отладку.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента