AWS CodeBuild – это полностью управляемый сервис сборки. Достаточно указать, где располагается код, выбрать параметры сборки – и CodeBuild сам запустит скрипты компиляции, тестирования и сборки пакетов кода. При этом не требуется выделять и масштабировать серверы, а также устанавливать, запускать и настраивать ПО.

Сервис AWS CodeBuild теперь доступен всем

Попробуйте AWS CodeBuild бесплатно

Уровень бесплатного пользования AWS для AWS CodeBuild включает 100 минут выполнения сборки на базе инстанса build.general1.small в месяц.

Подробнее об уровне бесплатного пользования AWS »

Сборка и тестирование

AWS CodeBuild запускает сборку в предварительно настроенной среде для с определенной операционной системой, средой исполнения для языка программирования и средствами сборки (например, Apache Maven, Gradle или npm). Нужно просто указать местоположение исходного кода и выбрать параметры сборки, такие как среда сборки и команды исполнения. AWS CodeBuild выполняет сборку кода и сохраняет артефакты в корзину Amazon S3. Можно также использовать команды сборки для загрузки артефактов в репозиторий. Для создания проекта сборки и для управления им можно использовать AWS CodePipeline, Консоль управления AWS, интерфейс командной строки AWS или средства SDK.

Предварительно настроенные среды сборки

В AWS CodeBuild доступны среды сборки для Java, Python, Node.js, Ruby, Go, Android и Docker.

Полный список предварительно настроенных сред сборки см. здесь.

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

В AWS CodeBuild можно использовать свои собственные среды сборки. Для этого необходимо создать образ Docker, содержащий требуемую среду исполнения и инструменты сборки, и загрузить его в репозиторий Docker Hub или Amazon EC2 Container Registry (Amazon ECR). После создания нового проекта сборки можно указать местоположение образа Docker, и CodeBuild будет использовать этот образ в качестве конфигурации проекта сборки.


Настройки конфигурации

Указание команд сборки
Можно указать определенные команды для запуска с помощью AWS CodeBuild, такие как установка инструментов сборки, запуск модульных тестов и сборка пакетов кода. Конфигурация сборки хранится в файле YAML, в котором можно выбрать команды, выполняемые на каждом этапе сборки, и другие параметры. CodeBuild предоставляет примеры файлов конфигураций сборки для типичных сценариев (например, для сборки с помощью Apache Maven, Gradle или npm), которые помогут быстро начать работу с сервисом.

Примеры конфигураций сборки см. здесь.

Выбор вычислительных ресурсов
Можно выбрать самый подходящий для конкретных задач тип вычислительных ресурсов. Доступны три уровня, которые отличаются объемом ресурсов ЦПУ и памяти. Они позволяют выбирать разный объем ресурсов в соответствии с требованиями сборки.

Интеграция с исходным кодом
При работе с AWS CodeBuild начать сборку можно несколькими способами. Например, можно начать сборку в CodeBuild после подключения к AWS CodeCommit, GitHub или Amazon S3. Можно также подключить CodeBuild к репозиторию исходных кодов с помощью AWS CodePipeline, который автоматически запускает сборку после каждого подтверждения изменений кода.


Процессы непрерывной интеграции и доставки

В AWS CodeBuild применяется тарифный план по факту использования и модель предоставления ресурсов по требованию. Это позволяет чаще выполнять сборку кода, а также искать и исправлять ошибки на ранних стадиях разработки, когда проблемы можно легко устранить. CodeBuild можно интегрировать в существующие процессы непрерывной интеграции и непрерывной доставки (CI/CD), используя функции интеграции исходного кода, команды сборки или интеграцию с Jenkins. CodeBuild – один из группы сервисов AWS Code, который позволяет использовать CI/CD. CodeBuild можно подключить к AWS CodePipeline и автоматически запускать сборку и тестирование кода в CodeBuild после каждого подтверждения изменения кода в репозитории исходных кодов. Для этого в мастере AWS CodePipeline можно подключить репозиторий исходных кодов и выбрать CodeBuild в качестве сборщика кода.

Можно также подключить инструменты нагрузочного тестирования или тестирования интерфейса (например, BlazeMeter или Ghost Inspector), которые будут запускаться после завершения сборки с помощью CodeBuild. Это позволяет расширить процесс непрерывной интеграции до процесса непрерывной доставки. Затем можно выполнить развертывание пакета в инстансах или на локальных серверах с помощью сервисов, интегрированных с AWS CodePipeline, таких как AWS CodeDeploy и AWS Elastic Beanstalk.

AWS CodePipeline и AWS CodeBuild
AWS CodePipeline и AWS CodeBuild

Снимок экрана AWS CodePipeline. Этот процесс загружает исходный код из AWS CodeCommit, собирает его в AWS CodeBuild и выполняет развертывание кода с помощью AWS CodeDeploy.

Использование AWS CodeBuild с AWS CodePipeline
(Нажмите для увеличения)


Безопасность и разрешения

Артефакты сборки шифруются ключом, специфичным для каждого клиента. Управление ключами происходит через AWS Key Management Service (KMS). AWS CodeBuild интегрирован с сервисом AWS Identity and Access Management, с помощью которого можно управлять доступом к сборкам пользователей и ресурсов AWS.


Мониторинг

Для просмотра информации о сборках можно использовать Консоль управления AWS, интерфейс командной строки AWS, инструменты SDK или API. AWS CodeBuild отображает время начала и окончания сборки, статус сборки, идентификатор подтверждения загрузки, ветку кода и многое другое. CodeBuild также отправляет журналы сборки в журналы Amazon CloudWatch.

AWS CodeBuild
AWS CodeBuild

(Нажмите для увеличения)