AWS codeBuild не запускает конфигурацию .ebextension - PullRequest
1 голос
/ 06 мая 2020

Я использую AWS фиксацию кода для тестирования и развертывания, и мне нужно предварительно установить redis, chromium перед запуском модульных тестов с использованием codeBuild. Вся конфигурация установки есть в .ebextensions, которая отлично работает с экземпляром EB, если я удалю этап сборки.

Но когда я использую конвейер codeBuild, buildspe c .yml, похоже, не запускает .ebextension config перед запуском тестов. Кто-нибудь знает, как я могу запустить .ebextensions в pre_build?

version: 0.2

phases:
install:
runtime-versions:
nodejs: 12
commands:
- echo Installing jest...
- npm install -g jest
pre_build:
commands:
- echo Installing source NPM dependencies...
- npm install
- echo Starting app...
- npm start
build:
commands:
- echo Build started on `date`
- echo Running unit tests...
- npm run test
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- **/*
- .ebextensions/**/*

Журналы сборки кода


[2020/05/05 11:55:29 Waiting for agent ping
[2020/05/05 11:55:31 Waiting for DOWNLOAD_SOURCE
[2020/05/05 11:55:32 Phase is DOWNLOAD_SOURCE
[2020/05/05 11:55:32 CODEBUILD_SRC_DIR=/codebuild/output/src129341116/src
[2020/05/05 11:55:32 YAML location is /codebuild/output/src129341116/src/buildspec.yml
[2020/05/05 11:55:32 Processing environment variables
[2020/05/05 11:55:32 Selecting 'nodejs' runtime version '12' based on manual selections...
[2020/05/05 11:55:32 Running command echo "Installing Node.js version 12 ..."
Installing Node.js version 12 ...

[2020/05/05 11:55:32 Running command n $NODE_12_VERSION
installed : v12.16.1 (with npm 6.13.4)

[2020/05/05 11:55:41 Moving to directory /codebuild/output/src129341116/src
[2020/05/05 11:55:41 Registering with agent
[2020/05/05 11:55:41 Phases found in YAML: 4
[2020/05/05 11:55:41 BUILD: 3 commands
[2020/05/05 11:55:41 POST_BUILD: 1 commands
[2020/05/05 11:55:41 INSTALL: 2 commands
[2020/05/05 11:55:41 PRE_BUILD: 4 commands
[2020/05/05 11:55:41 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
[2020/05/05 11:55:41 Phase context status code: Message:
[2020/05/05 11:55:41 Entering phase INSTALL
[2020/05/05 11:55:41 Running command echo Installing jest...
Installing jest...
.................
[2020/05/05 11:55:41 Running command npm install -g jest
....................
[2020/05/05 11:55:55 Entering phase PRE_BUILD
[2020/05/05 11:55:55 Running command echo Installing source NPM dependencies...
Installing source NPM dependencies...

Если я вижу журналы, он не запускает скрипт .ebextensions для установки Redis и другое программное обеспечение перед запуском тестов.

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

.ebextensions выполняются Elasti c Beanstalk.

CodeBuild не будет запускать их, и вы не можете выполнить их в CodeBuild, так как они имеют формат c в Elasti c Beanstalk.

Чтобы установить зависимости для ваших тестов, вам нужно вручную сделать это с помощью команд yum или apt, в зависимости от вашего образа CodeBuild.

Вы также можете создать bash файлы сценария в своем пакете развертывания, который вы можете выполнить в CodeBuild. Затем файлы сценария могут установить все зависимости.

В качестве альтернативы, если у вас много сложных зависимостей, файлов конфигурации, вы можете развернуть свое приложение как docker на Beanstalk . Таким образом, ваш образ docker будет содержать все необходимые зависимости, в том числе для тестирования.

Также возможно использование eb cli в CodeBuild:

Однако я не уверен, подойдет ли это для вашего варианта использования.

0 голосов
/ 06 мая 2020

.ebextensions предназначен для Elasti c Beanstalk, CodeBuild использует файл с именем buildspe c.

См .: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...