Есть ли способ изменить каталог в сборке кода AWS?

С уходом Snap-CI я пытался заставить наши сборки работать на AWS CodeBuild. У меня есть свой buildspec.yml, но смена каталогов, похоже, не работает.

version: 0.1

phases:
  install:
    commands:
      - apt-get update -y
      - apt-get install -y node
      - apt-get install -y npm
  build:
    commands:
      - cd MyDir  //Expect to be in MyDir now
      - echo `pwd` //Shows /tmp/blablabla/ instead of /tmp/blablabla/MyDir
      - npm install //Fails because I'm not in the right directory
      - bower install
      - npm run ci
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - MyDir/MyFile.war
  discard-paths: yes

Кажется, что это должно быть довольно просто, но до сих пор мне не удавалось заставить это работать.


person Zipper    schedule 02.03.2017    source источник


Ответы (2)


Если вы измените версию buildspec.yml на 0.2, оболочка сохранит свои настройки. В версии: 0.1 вы получаете чистую оболочку для каждой команды.

наслаждаться ;)

person Eric Nord    schedule 15.07.2017

Каждая команда в CodeBuild запускается в отдельной оболочке в корне вашего источника (доступ к корню вашего источника из переменной среды CODEBUILD_SRC_DIR).

Ваши возможные варианты

  • Сократите команды для запуска в одной оболочке: работает, когда у вас относительно простая спецификация сборки (например, ваша).

commands: - cd MyDir && npm install && bower install - cd MyDir && npm run ci

  • Переместите свои команды из спецификации сборки в сценарий и получите больше контроля (полезно для более сложной логики сборки).

commands: - ./mybuildscipt.sh

Дайте мне знать, если какой-либо из них работает для вас.

-- РЕДАКТИРОВАТЬ --

С тех пор CodeBuild запустила buildspec v0.2, где этот обходной путь больше не требуется.

person awsnitin    schedule 02.03.2017
comment
Я только что столкнулся с той же проблемой. К сожалению, cd на каждой строке не помогает: [Container] 2017/07/02 12:46:55 Command did not exit successfully cd dealer-ai && npm install exit status 1 [Container] 2017/07/02 12:46:55 Phase complete: INSTALL Success: false [Container] 2017/07/02 12:46:55 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: cd dealer-ai && npm install. Reason: exit status 1 - person Ilya Krasnov; 02.07.2017
comment
С тех пор CodeBuild запустила buildspec v0.2, где этот обходной путь больше не требуется. docs.aws. amazon.com/codebuild/latest/userguide/ - person awsnitin; 03.07.2017