Поиск по сайту:

Как начать работу с CodeBuild, сервисом автоматической сборки AWS


CodeBuild — это служба управляемой сборки, по функциям похожая на Jenkins, но ориентированная на автоматизацию сборки и тестирования. Его можно использовать вместе с CodePipeline для создания полностью автоматизированного конвейера CI/CD.

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

Если вы используете CodePipeline, вам следует создать проект CodeBuild из диалогового окна во время «Добавить стадию сборки». Это настроит его на использование CodePipeline в качестве источника. Если вы не используете CodePipeline, вы можете создать проект сборки из консоли управления CodeBuild и вручную ввести данные для системы управления версиями.

В любом случае, первое, что вы настроите, — это среда, в которую будет встроен ваш код. Это не должно иметь значения для большинства проектов, но для тех, которые имеют значение, вы можете указать пользовательские образы Docker, чтобы иметь полный контроль над ними. В противном случае настройки Amazon Linux 2 по умолчанию и стандартные среды выполнения должны подойти.

В разделе «Дополнительные параметры» для среды вы найдете параметры для изменения параметров вычислений, чтобы выбрать другой тип сервера. Вы также можете изменить переменные среды здесь.

Для настроек VPC лучше оставить это в покое, если у вас нет причин поступать иначе. Настройки по умолчанию (пустые), скорее всего, подходят.

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

В любом случае вам, вероятно, потребуется некоторое время, чтобы разобраться в файле Buildspec. Это будет сильно зависеть от типа приложения, которое вы используете, и от того, что необходимо создать и протестировать.

Например, следующая конфигурация установит модули, необходимые для проекта TypeScript, скомпилирует с помощью npm run build и запустит npm test. Файл buildspec имеет несколько отдельных фаз, которые можно использовать для запуска команд в разное время.

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)

Вы можете обратиться к справочнику AWS Buildspec для получения дополнительной информации о том, как все работает.

Получив файл, который вас устраивает, вы можете включить журналы CloudWatch или вместо этого вести журнал на S3.

Нажмите «Создать проект сборки», и ваша настройка должна быть завершена.

Тестирование вашей сборки

CodeBuild обычно запускается как часть CodePipeline. Если вы используете CodePipeline, вам нужно будет завершить настройку этапа развертывания и создать конвейер. Он должен запускаться автоматически и отправлять исходный код в CodeBuild. В противном случае вы можете запустить сборку вручную из консоли или с помощью интерфейса командной строки AWS:

aws codebuild start-build
--project-name <value>

Эта команда также имеет много переопределений.

Вы сможете просмотреть вывод своей сборки, щелкнув сборку в консоли управления. Это покажет вам журналы процесса сборки, что может иметь решающее значение для отслеживания ошибок.

Если какая-либо команда завершится ошибкой, вся сборка, скорее всего, потерпит неудачу, поэтому вам нужно убедиться, что все сделано правильно. Если вы используете CodePipeline, изменения в вашем buildspec.yml будут запускать новые обновления конвейера и новые сборки.