AWS CodeBuild Git Connection - обновлять только обновленный код - PullRequest
1 голос
/ 05 октября 2019

Я использую 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 только назапускать обновления для заданной спецификации сборки, если в репо изменяются определенные файлы?

Т.е. запускать 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/**/*'

1 Ответ

1 голос
/ 05 октября 2019

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

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

...