Перейти к содержимому

Интеграция Tuist со Slack

Интеграция Tuist со Slack выводит аналитику сборок, тестов и бандлов прямо в ваши каналы. Она превращает мониторинг из задачи, о которой команде нужно постоянно помнить, в процесс, который происходит автоматически. Например, ваша команда может получать ежедневные сводки о производительности сборок, проценте попаданий в кэш или тенденциях изменения размера бандла, а также мгновенные оповещения в момент ухудшения ключевых метрик или появления нестабильных тестов.

На этой странице описано, что делает интеграция, как установить её для каждого канала и как Tuist обрабатывает ваши данные. Подробнее о том, как Tuist собирает, управляет и хранит сторонние данные, см. в нашей политике конфиденциальности.

Как работает интеграция#

Tuist отправляет уведомления в Slack через входящие вебхуки Slack. Интеграция запрашивает только область видимости incoming-webhook. Каждое назначение уведомлений (отчёт по проекту, правило оповещения, оповещение о нестабильном тесте, действие автоматизации) соответствует одному каналу Slack, который вы выбираете при установке. Slack создаёт один URL вебхука для каждого канала, а Tuist сохраняет его для доставки сообщений.

Tuist никогда не читает сообщения, списки участников или любые другие данные из вашего рабочего пространства. Интеграция только записывает уведомления в каналы, которые вы явно авторизовали.

Настройка#

Отчёты по проектам#

Отчёты по проектам доставляют ежедневную сводку метрик сборки, тестирования и кэширования вашего проекта в выбранный вами канал Slack.

  1. Откройте настройки уведомлений вашего проекта в панели управления Tuist.
  2. Нажмите Выбрать канал Slack и выберите рабочее пространство и канал, куда Tuist будет публиковать сообщения. Slack попросит вас авторизовать область видимости incoming-webhook и выбрать один канал.
  3. Выберите дни недели и время суток, когда вы хотите получать ежедневный отчёт.

Изображение, показывающее настройки уведомлений с конфигурацией отчёта Slack

После настройки Tuist отправляет автоматические ежедневные отчёты в выбранный канал:

Изображение, показывающее сообщение отчёта в Slack
PRIVATE CHANNELS

Чтобы публиковать сообщения в приватный канал, сначала откройте этот канал в Slack и добавьте его в список каналов, видимых для интеграции, на этапе авторизации.

Правила оповещений#

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

Чтобы создать правило оповещения, перейдите в настройки уведомлений вашего проекта и нажмите Добавить правило оповещения. Вы можете настроить:

  • Имя: Описательное название для оповещения
  • Категория: Что измерять (длительность сборки, длительность тестов, процент попаданий в кэш или размер бандла)
  • Метрика: Как агрегировать данные (p50, p90, p99 или среднее значение)
  • Отклонение: Процентное изменение, которое вызывает срабатывание оповещения
  • Скользящее окно: Сколько последних запусков сравнивать
  • Ветка: Для оповещений о проценте попаданий в кэш ограничьте сравнение запусками на одной ветке. Оставьте поле пустым, чтобы учитывать все ветки. Оповещения о размере бандла всегда относятся к одной ветке.
  • Канал Slack: Канал назначения. Вы авторизуете канал через тот же поток incoming-webhook, описанный выше.

Например, вы можете создать оповещение, которое срабатывает, когда длительность сборки p90 увеличивается более чем на 20% по сравнению с предыдущими 100 сборками.

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

Оповещение о проценте попаданий в кэш сравнивает только те окна, которые можно сравнить корректно. Оба окна должны содержать столько запусков, сколько указано в размере скользящего окна, а источник данных кэша, присутствующий только в одном из двух окон, исключается из обоих. Таким образом, ветка, которая ещё не накопила вдвое больше запусков, чем размер скользящего окна, или имя ветки, которому ничего не соответствует, никогда не вызовет срабатывание правила. Если вы ограничиваете правило малонагруженной веткой, сделайте скользящее окно достаточно маленьким, чтобы ветка могла его заполнить.

Когда оповещение срабатывает, вы получите сообщение подобного вида в вашем канале Slack:

Изображение, показывающее сообщение оповещения в Slack
COOLDOWN PERIOD

После срабатывания оповещения оно не сработает снова для того же правила в течение 24 часов. Это предотвращает усталость от уведомлений, когда метрика остаётся повышенной.

Оповещения о нестабильных тестах#

Оповещения о нестабильных тестах срабатывают в момент, когда Tuist обнаруживает новый нестабильный тест, помогая выявить нестабильность тестов до того, как она повлияет на вашу команду.

Чтобы создать правило оповещения о нестабильном тесте, перейдите в настройки уведомлений вашего проекта и нажмите Добавить правило оповещения о нестабильном тесте. Вы можете настроить:

  • Имя: Описательное название для оповещения
  • Порог срабатывания: Минимальное количество нестабильных запусков за последние 30 дней, необходимое для срабатывания оповещения
  • Канал Slack: Канал назначения, авторизованный через поток incoming-webhook.

Когда тест становится нестабильным и достигает вашего порога, вы получите уведомление с прямой ссылкой для изучения тест-кейса:

Изображение, показывающее сообщение оповещения о нестабильном тесте в Slack

Отключение интеграции#

Чтобы остановить уведомление, удалите настроенный канал Slack из отчёта, правила оповещения или действия автоматизации в панели управления Tuist. Чтобы полностью отозвать доступ Tuist, удалите вебхук-интеграцию внутри Slack через Настройки и администрирование → Управление приложениями.