Мы используем Gitlab для контроля источников и CI / CD.
Я хотел бы уведомить наших тестировщиков, что наше приложение было обновлено в тестовой среде, когда конвейер в определенной ветви успешно завершен.
Критерием для этого является то, что я хочу отправлять электронную почту / вызывать веб-крючок только в том случае, если конвейер a) успешно завершен и b) находится в определенной ветви.
Наши конвейеры CI / CD обычно имеют следующие стадии:
stages:
- setup
- compliance
- test
- build
- deploy
Пример одной из частей нашей build
сцены, например:
build-master:
image: docker
services:
- docker:dind
stage: build
script:
- docker login -u $DEV_DOCKER_REGISTRY_USER -p $DEV_DOCKER_REGISTRY_PW $DEV_DOCKER_REGISTRY_HOST
- docker build --pull --build-arg HG_APP_DEPLOY_KEY="$HG_APP_DEPLOY_KEY" -t $DEV_DOCKER_REGISTRY_HOST/$CI_PROJECT_NAME:stable .
- docker push $DEV_DOCKER_REGISTRY_HOST/$CI_PROJECT_NAME
only:
- master
Я пытаюсь найти способ добавить заключительный этап, например, notify
, который отправляет электронное письмо (или вызывает веб-крючок) на один из наших каналов Microsoft Teams. Это достаточно легко настроить в командах, поэтому мне не нужно беспокоиться об этом.
Я исследовал несколько вариантов Integrations на Gitlab. Например, вы можете настроить интеграцию Teams или интеграцию E-mail на Push . Ничего из этого не достаточно, однако , потому что они не позволяют мне фильтровать только конвейеры, которые являются a) успешными и b) в определенной ветви .
Я также исследовал опцию Webhooks на Gitlab, но это не работает с командами - я получаю 400 error summary text required
, который кажется непреодолимым (так как нет возможности добавить такую сводку из пользовательский интерфейс Webhooks).
Предполагая поэтому, что я не могу использовать функции пользовательского интерфейса Gitlab (однако я рад принять ответ на этот вопрос, если мы сможем соответствовать вышеуказанным критериям), я сейчас думаю о том, как я могу потенциально использовать Docker, как мы это делаем в других частях. конвейера, чтобы отправить электронное письмо или позвонить через веб-крючок.
Каким будет самый быстрый / простой / наименьшее количество строк способ сделать это в конвейере Gitlab CI / CD?