#amazon-web-services #aws-codebuild
#amazon-веб-сервисы #aws-codebuild
Вопрос:
Я вызывал codebuild и вручную переопределял buildspec следующим образом:
aws codebuild start-build --cli-input-json file://servicea/custom.json
а затем в custom.json
{
"projectName": "myproject",
"sourceVersion": "master",
"buildspecOverride": "servicea/buildspec.yml"
}
Теперь я хочу использовать bitbucket trigger (или github, если bitbucket не поддерживается) для автоматической сборки сервиса после его отправки в master.
Я погуглил и нашел это руководствоhttps://docs.aws.amazon.com/codebuild/latest/userguide/sample-bitbucket-pull-request.html
Однако я столкнулся с препятствием, из-за которого я не смог создать определенную папку с определенной спецификацией сборки.
например
-
для
servicea
сборка должна выполняться, если я нажимаю на master и изменяю любые файлы вservicea
папке сservicea/buildspec.yaml
в качестве buildspec -
для
serviceb
сборка должна выполняться, если я нажимаю на master и изменяю любые файлы вserviceb
папке сserviceb/buildspec.yaml
в качестве buildspec
В триггере есть FILE_PATH
фильтр, однако я не смог найти способ установить пользовательскую спецификацию сборки.
Есть ли какой-либо способ добиться этого?
Примечание: Я хочу использовать 1 проект сборки кода для всех моих сервисов
Ответ №1:
В полезной нагрузке Bitbucket webhook список файлов в них не изменен, в отличие от GitHub.
Обходной путь: установите для «git-credential-helper» значение «да» (или 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