AWS CodeBuild с GitHub — только для определенного каталога

Я пытаюсь настроить автоматическое развертывание приложения Angular 2 с помощью AWS Pipeline, S3 и CodeBuild.

После tutorial Мне удалось подключить CodeBuild к репозиторию GitHub, и процесс отлично работает.

Однако наше приложение Angular находится внутри подкаталога большего репозитория.

Есть ли способ указать каталог внутри репо, чтобы сборка запускалась только в случае изменения подкаталога?

Большое спасибо.


person Ilya Krasnov    schedule 07.06.2017    source источник


Ответы (2)


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

Для GitHub для необязательного значения Исходная версия введите идентификатор фиксации, идентификатор запроса на вытягивание, имя ветки или имя тега, соответствующее версии исходного кода, который вы хотите собрать. Если указан идентификатор запроса на вытягивание, он должен использовать формат pr/pull-request-ID (например, pr/25). Если указано имя ветки, будет использоваться идентификатор фиксации HEAD ветки. Если исходная версия пуста, будет использоваться идентификатор фиксации HEAD ветки по умолчанию.

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

артефакты Необязательная последовательность. Представляет информацию о том, где AWS CodeBuild может найти выходные данные сборки и как AWS CodeBuild подготовит их для загрузки в выходную корзину Amazon S3. Эта последовательность не требуется, если, например, вы создаете и отправляете образ Docker в Amazon ECR или выполняете модульные тесты для исходного кода, но не создаете его. файлы: Требуемая последовательность. Представляет расположения, содержащие артефакты вывода сборки в среде сборки. Содержит последовательность скаляров, где каждый скаляр представляет отдельное расположение, в котором AWS CodeBuild может найти выходные артефакты сборки относительно исходного расположения сборки. Расположение может включать следующее: Один файл (например, my-file.jar). Один файл в подкаталоге (например, мой-подкаталог/мой-файл.jar или мой-родительский-подкаталог/мой-подкаталог/мой-файл.jar). '/' рекурсивно представляет все файлы. my-subdirectory/ представляет все файлы в подкаталоге с именем my-subdirectory. my-subdirectory//* представляет все файлы рекурсивно, начиная с подкаталога с именем my-subdirectory.

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

person strongjz    schedule 07.06.2017
comment
Спасибо, @strongiz. Мы решили проблему, используя поддерево и отдельный репозиторий для пайплайна. - person Ilya Krasnov; 15.06.2017
comment
и теперь у вас есть 2 проблемы ;-) - person Duncan McGregor; 18.07.2017

Если вы являетесь веб-перехватчиком GitHub в CodeBuild, теперь у вас есть опция file_path, которая позволит вам запускать сборку только при изменении определенного файла или каталога.

Документация: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html#sample-github-pull-request-filter-webhook-events-console

person Subin Mathew    schedule 07.09.2019
comment
@IlyaKrasnov, теперь это должен быть принятый ответ. - person Walking Wiki; 05.01.2020
comment
Спасибо за ссылку, она отлично работает для сборки кода, однако, когда я подключаю сборку кода к конвейеру кодов, конвейер игнорирует триггер file_path, который находится в сборке кода. конвейер кода будет запущен при любом нажатии на репозиторий. Знаете ли вы, есть ли способ ограничить триггер codepipeline с помощью file_path? - person Matrix; 18.02.2021