В моем проекте есть buildspec.yml, который развертывает мое приложение и создает новый выпуск на GitHub.
.
Если я создам новый проект CodeBuild с указанным выше yml файлом и наблюдаю за основной веткой с помощью GitHub push webhook, он будет постоянно выпускать новые версии ...
Кажется, что если я смотрю событие «push», веб-перехватчик также запускает новую сборку, если обнаруживаются новые выпуски (или создание нового тега?). И этот выпуск запускает другое событие «push» веб-перехватчика, входящее в бесконечный цикл выпуска.
Есть ли способ сделать сборку реактивной только на реальные нажатия?
(или, возможно, создание новых выпусков в buildspec.yml не является хорошей практикой ...?)





событие push действительно обнаруживает создание тегов и ветвей.
Но его полезная нагрузка события также включает «размер»: количество коммитов в push.
Если этот размер равен 0, вашему слушателю не нужно будет запускать какую-либо сборку.
@sora Ладно, странно: может быть, поддержка GitHub расскажет об этом подробнее.
В CodeBuild есть встроенная поддержка фильтрации событий вашего веб-перехватчика. Подробности в https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html#sample-github-pull-request-filter-webhook-events-console. Вы можете установить фильтр для отказа от сборок, когда он срабатывает из-за тега выпуска.
Спасибо за ваш ответ. На самом деле, хотя в документе говорится, что «размер» - это количество коммитов В НАЖАТИИ, кажется, он учитывает все коммиты с момента создания репозитория ... :( В итоге я сделал шлюз api + лямбда для фильтрации моих веб-перехватчиков.