Создание зависимых триггеров в облачной сборке GCP

# #google-cloud-platform #cloud #google-cloud-build

Вопрос:

Мне нужно создать зависимый триггер в облачной сборке. В настоящее время у меня есть два триггера, как показано на рисунке ниже, оба из которых создаются при отправке события в главную ветвь в соответствующих репозиториях.

«app-engine-тест» запускается при отправке кода в облачное хранилище, тогда как «seleniumTest» запускается при отправке кода в репозиторий Git.

Однако я хочу запустить триггер «seleniumTest» после завершения сборки «app-engine-test». Я не смог найти такой настройки в пользовательском интерфейсе GCP.

Кто-нибудь может, пожалуйста, помочь?

введите описание изображения здесь

Ответ №1:

Вы можете сделать это, используя сообщение Pub/Sub в качестве триггера для зависимой сборки.

Когда запускается сборка CloudBuild, она публикует сообщения в пабе/подразделе cloud-builds — см. https://cloud.google.com/build/docs/subscribe-build-notifications.

Поэтому , если у вас есть сборки app и test , app они будут срабатывать при переходе в систему управления версиями и test срабатывать при публикации сообщения по этой cloud-builds теме.

Я не проверял это сам, но мне нужно что-то подобное, поэтому я обновлю этот ответ по ходу. Если окажется, что вы не можете подписаться на cloud-builds событие, то в конце app сборки вы также можете опубликовать сообщение в своем собственном пабе/подразделе, которое затем можно использовать для запуска второй сборки.

Другим решением в вашем случае может быть объединение двух проектов и простое выполнение тестов selenium в качестве заключительного шага сборки после успешного развертывания кода.

Комментарии:

1. Спасибо, что вернулись. Я действительно изучил тему «сборщики мусора» после того, как опубликовал этот вопрос. Но я не смог найти тему облачных сборок в pubsub.. разве она не должна быть там. Я также попытался создать собственную тему, но не смог создать правильную облачную функцию для этого. Какие-нибудь указания??

2. @adev2086 Да, он должен быть там, возможно, вам не хватает каких-то разрешений, чтобы его видеть?! (этого не должно произойти, если вы один строите, но все же стоит проверить). Кроме того, что вы имеете в couldn't get to create a correct cloud function for this виду под этим ? У вас были какие-нибудь ошибки? Возможно, стоит создать еще один вопрос с кодом ваших функций и подробно объяснить, что не работает.