AWS CodeBuild Git Connection - обновлять только обновленный код

Я использую AWS для упаковки своего лямбда-кода и зависимостей node10.x для своего сайта. У меня есть репозитории git, разбитые по функциям, так что у меня есть репо, посвященное моим лямбдам rest-auth в качестве примера (я все еще активно разрабатываю это, поэтому есть несколько отсутствующих файлов buildspec и функций).

Мой репозиторий git имеет следующий макет:

.
├── buildspec
│   ├── postmark.yml
│   ├── rest-auth-login.yml
│   ├── rest-auth-password-link.yml
│   └── rest-auth-register.yml
├── function_code
│   ├── login.js
│   ├── password-link.ext
│   ├── postmark.js
│   ├── register.js
│   └── rgistration-confirm.js
├── .gitignore
└── README.md

Прямо сейчас, когда я отправляю обновление на github, срабатывают все 4 конфигурации buildspec и создают 4 zip-файла в моем ведре S3, из которых мои лямбда-выражения могут читать.

Однако все 4 zip-файла воссоздаются, даже если есть изменения только в ОДНОМ из их базового кода - я знаю, что могу разделить каждую функцию на собственное репо, но есть ли способ настроить AWS CodeBuild, чтобы запускать обновления только для заданного buildspec, если в репо изменяются определенные файлы?

Т.е. запускать postmark.yml только если файл postmark.js изменен?

Пример postmark.yml

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10  
    commands:
      - npm install postmark
artifacts:
  files:
    - 'function_code/postmark.js'
    - 'node_modules/**/*'

person Schalton    schedule 04.10.2019    source источник


Ответы (1)


да. Вы можете использовать опцию file_path, чтобы запускать только при изменении конкретного файла, как описано в https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html#sample-github-pull-request-filter-webhook-events-console.

Добавление следующего элемента к тексту сборки postmark приведет к тому, что эта сборка будет запускаться только при обновлении файла postmark.js

person Subin Mathew    schedule 05.10.2019