Не пропускайте сбои GitHub Actions: мгновенные оповещения через Echobell

Настройте мгновенные вебхук-уведомления о сбоях GitHub Actions с помощью Echobell. Держите CI/CD-пайплайн под контролем: push-оповещения или телефонные звонки приходят за секунды.

Содержание

Уведомления о сбоях CI по email и в Slack легко пропустить. Echobell Notification Action отправляет оповещения по вебхуку прямо на телефон — push-уведомления для обычных сборок, телефонные звонки для сбоев на проде, — чтобы сломанные пайплайны не оставались незамеченными.

Настройка

1. Создайте канал в Echobell

  1. Скачайте Echobell / Google Play и войдите в аккаунт
  2. Создайте канал с названием вроде «GitHub CI/CD Alerts»
  3. Скопируйте URL вебхука из настроек канала
  4. В репозитории GitHub: Settings → Secrets and variables → Actions → New repository secret
  5. Назовите секрет ECHOBELL_WEBHOOK_URL и вставьте URL

2. Добавьте в свой workflow

Базовая настройка (workflow с одним job):

name: Build and Test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Build
        run: npm run build

      - name: Test
        run: npm test

      - name: Notify on Failure
        if: failure()
        uses: weelone/echobell-action@v1
        with:
          webhook-url: ${{ secrets.ECHOBELL_WEBHOOK_URL }}

Пайплайны с несколькими job — используйте отдельный job для уведомлений, зависящий от всех критичных job:

name: Deploy Pipeline

on:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Tests
        run: npm test

  build:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: npm run build

  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Deploy
        run: npm run deploy

  notify_on_failure:
    runs-on: ubuntu-latest
    needs: [test, build, deploy]
    if: failure()
    steps:
      - name: Send Failure Notification
        uses: weelone/echobell-action@v1
        with:
          webhook-url: ${{ secrets.ECHOBELL_WEBHOOK_URL }}

Отдельный job для уведомлений даёт одно сводное оповещение при каскадных сбоях вместо нескольких отдельных уведомлений.

Советы

Заголовки уведомлений должны отвечать на вопросы: что упало, где и когда. Используйте шаблоны вроде ❌ Main Branch CI Failed или 🚨 Deploy Pipeline Down - Production.

Заводите отдельные каналы по уровню критичности. Обычный канал — для рядовых оповещений CI, второй канал с типом Звонок — для сбоев на проде. Направляйте разные workflow на разные URL вебхуков. Подробности — в статье про звонковые уведомления.

Делитесь каналами с командой. Создайте канал для сбоев CI/CD, которые должна видеть вся команда, и отдельный — для проблем, касающихся только инфраструктуры. Общие каналы в Echobell позволяют коллегам подписываться со своими настройками уведомлений — каждому не нужно настраивать вебхуки отдельно.

Связанные материалы

Похожие статьи