Запуск CodeBuild с использованием пользовательского файла buildstep для определенных папок - PullRequest
1 голос
/ 29 марта 2019

Я вызывал codebuild и вручную переопределял спецификации сборки следующим образом:

aws codebuild start-build --cli-input-json file://servicea/custom.json

, а затем в custom.json

{
    "projectName": "myproject",
    "sourceVersion": "master",
    "buildspecOverride": "servicea/buildspec.yml"
}

Теперь я хочу использовать триггер bitbucket (или github, если bitbucket не поддерживается), чтобы автоматически создать сервис после того, как он будет передан мастеру.

Я был в Google и нашел этот урок https://docs.aws.amazon.com/codebuild/latest/userguide/sample-bitbucket-pull-request.html

Однако я встретил контрольно-пропускной пункт, в котором я не смог создать определенную папку с определенной спецификацией сборки.

, например

  1. для servicea, сборка должна запускаться, если я нажимаю на master и изменяю любые файлы в папке servicea с servicea/buildspec.yaml в качестве спецификации сборки

  2. для serviceb, сборка должна запускаться, если я нажимаю на master и изменяю любые файлы в папке serviceb, используя serviceb/buildspec.yaml в качестве buildspec

В триггере есть фильтр FILE_PATH, однако я не смог найти способ установить пользовательскую спецификацию сборки.

Есть ли способ добиться этого?

Примечание: Я хочу использовать 1 проект codebuild для всех моих сервисов

1 Ответ

0 голосов
/ 15 июня 2019

Полезная нагрузка Bitbucket Webhook не имеет списка файлов, измененных в них, в отличие от GitHub.

Обходной путь: Установите для "git-credential-helper" значение "yes" (или true) в вашей сборочной спецификации.Подробности в https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax

Затем можно получить список файлов, измененных для конкретного коммита, с помощью вызова, упомянутого в https://community.atlassian.com/t5/Bitbucket-questions/Bitbucket-How-to-get-modified-files-of-a-commit-in-JSON-format/qaq-p/704126

. Вы можете получить коммит из переменной среды: CODEBUILD_RESOLVED_SOURCE_VERSION иветвь из: CODEBUILD_WEBHOOK_HEAD_REF.Подробности в https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html

...