Артефакт из CodeBuild нельзя развернуть с помощью CodeDeploy

С помощью CodeBuild я компилирую свое приложение SpringBoot и помещаю полученный файл в папку с именем deploy/, В моем buildspec.yml в конце я предоставляю:

artifacts:
   files:
    - deploy/*

Когда я подключаю это к CodePipeline, это создает файл zip в S3. Но проблема в том, что этот zip-файл содержит корневую папку, т.е. deploy, Итак, структура zip-файла:

deploy.zip
  - deploy/
     - appspec.yml
     - app.jar
     - ...

Это приводит к проблеме, что CodeDeploy не может найти appspec.yml, потому что это не смотрит в папку развертывания. Я пытался преодолеть это, предоставляя zip-файл в качестве артефакта в конце процесса сборки, но затем в конвейере он просто снова архивируется...

Любая идея, как решить эту проблему, будет высоко ценится.

2 ответа

В разделе артефактов вы можете добавить новый флаг, который называется base-directory указать базовый путь для вашего пакета артефактов. Это позволит вам обрезать deploy/ выход из ваших артефактов без потери остальной части структуры под ним.

artifacts:
  files:
    - **/*
  base-directory: deploy

http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

Можете добавить discard-paths: yes

artifacts:
  files:
    - deploy/*
  discard-paths: yes

Имейте в виду, что он отбрасывает ВСЕ пути, включая подкаталоги

Источник: http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

Другие вопросы по тегам