Возможности AWS CodeBuild

Преимущества AWS CodeBuild

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

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

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

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

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

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

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

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

Примеры спецификации сборки см. здесь.

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

Существует несколько способов начать сборку при работе с CodeBuild. Например, можно начать сборку в CodeBuild после подключения к AWS CodeCommit, GitHub, GitHub Enterprise, Bitbucket или Amazon Simple Storage Service (Amazon S3). Можно также подключить CodeBuild к репозиторию исходных кодов с помощью AWS CodePipeline, который автоматически запускает сборку после каждого подтверждения изменений кода.

Общие вопросы

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

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

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

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

Можно создать оповещения для событий, влияющих на ваши проекты сборки. Сообщения будут поступать в форме уведомлений Amazon Simple Notification Service (Amazon SNS). Каждое оповещение включает в себя сообщение о состоянии и ссылку на ресурсы, где возникло событие, ставшее причиной оповещения.