Уведомления
После выполнения CI/CD задач часто требуется отправить уведомление о результате сборки — например, в командный чат (Slack, Telegram) или другой сервис. Сделать это можно с помощью дополнительных шагов в workflow.
Для отправки сообщений в Slack можно воспользоваться готовыми GitHub Actions, которые работают и в GitVerse. Предварительно необходимо создать Incoming Webhook URL в Slack (через настройки приложения Slack) и сохранить этот URL в секретах репозитория (например, под именем SLACK_WEBHOOK).
Ниже показан упрощенный пример workflow, который отправляет в Slack уведомление с результатом сборки:
name: Build and Notify
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: npm test
notify:
runs-on: ubuntu-latest
needs: build
if: always()
steps:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_CHANNEL: ci-alerts
SLACK_COLOR: ${{ job.status }}
SLACK_MESSAGE: "Build job ${{ needs.build.result }}"
SLACK_TITLE: "CI/CD Notification"В этом примере определены две задачи: build (запускает тесты) и notify (отправляет уведомление). Вторая задача имеет параметр needs: build и условие if: always(), поэтому она выполнится в любом случае после завершения job build — даже если тесты упали.
Шаг Slack Notification использует действие из Marketplace (rtCamp Slack notify) и передает ему необходимые переменные окружения:
SLACK_WEBHOOK– URL вебхука Slack (берется из секретов репозитория);SLACK_CHANNEL– канал Slack для отправки сообщения;SLACK_COLOR– цвет индикатора сообщения (в примере использует статус job — зеленый при успехе, красный при ошибке);SLACK_MESSAGE– текст сообщения (в примере указывается статус задачи сборки);SLACK_TITLE– заголовок сообщения в Slack.
Аналогичным образом можно настроить уведомления через другие сервисы: например, отправлять сообщения в Telegram с помощью бота (через HTTP API) или отправлять email-уведомления.
Теперь после каждого запуска workflow в указанный Slack-канал будет приходить сообщение с результатом (успешно или с ошибкой). Такой подход помогает оперативно информировать команду о состоянии сборок.