跳转到内容

Slack

如果您的组织使用 Slack,您可以将 Tuist 集成以直接在您的频道中显示洞察。这将监控从团队需要记住做的事情转变为自动发生的行为。例如,您的团队可以接收每日构建性能、缓存命中率或打包大小趋势的摘要。

连接您的 Slack 工作区 {#connect-workspace}

Section titled “连接您的 Slack 工作区 {#connect-workspace}”

首先,在 Integrations 选项卡中将您的 Slack 工作区连接到您的 Tuist 账户:

显示 Slack 连接集成选项卡的图片

点击 Connect Slack 以授权 Tuist 向您的工作区发布消息。这将重定向到 Slack 的授权页面,您可以在其中批准连接。

[!NOTE] SLACK 管理员审批

如果您的 Slack 工作区限制应用安装,您可能需要请求 Slack 管理员的审批。Slack 将在授权过程中引导您完成审批请求流程。

连接 Slack 后,在项目设置的通知选项卡中为每个项目配置报告:

显示 Slack 报告配置的通知设置图片

您可以配置:

  • Channel:选择接收报告的 Slack 频道
  • Schedule:选择一周中的哪几天接收报告
  • Time:设置一天中的时间

[!WARNING] 私有频道

要让 Tuist Slack 应用在私有频道中发布消息,您必须首先将 Tuist 机器人添加到该频道。在 Slack 中,打开私有频道,点击频道名称打开设置,选择 “Integrations”,然后点击 “Add apps” 并搜索 Tuist。

配置完成后,Tuist 会向您选择的 Slack 频道发送自动每日报告:

显示 Slack 报告消息的图片

通过 Slack 中的告警规则在关键指标显著退化时收到通知,帮助您尽快发现更慢的构建、缓存退化或测试变慢,最大限度地减少对团队生产力的影响。

要创建告警规则,请转到项目的通知设置并点击 Add alert rule

您可以配置:

  • Name:告警的描述性名称
  • Category:要测量的内容(构建时长、测试时长或缓存命中率)
  • Metric:如何聚合数据(p50、p90、p99 或平均值)
  • Deviation:触发告警的百分比变化
  • Rolling window:要与多少个最近运行进行比较
  • Slack channel:发送告警的位置

例如,您可以创建一个告警,当 p90 构建时长与前 100 次构建相比增加超过 20% 时触发。

当告警触发时,您将在 Slack 频道中收到类似这样的消息:

显示 Slack 告警消息的图片

[!NOTE] 冷却期

告警触发后,同一规则在 24 小时内不会再触发。这可以防止指标持续升高时的通知疲劳。

不稳定测试告警 {#flaky-test-alerts}

Section titled “不稳定测试告警 {#flaky-test-alerts}”

当测试变得不稳定时立即收到通知。与基于指标的比较滚动窗口的告警规则不同,不稳定测试告警在 Tuist 检测到新的不稳定测试时立即触发,帮助您在测试不稳定影响团队之前发现它。

要创建不稳定测试告警规则,请转到项目的通知设置并点击 Add flaky test alert rule

您可以配置:

  • Name:告警的描述性名称
  • Trigger threshold:在最近 30 天内触发告警所需的最少不稳定运行次数
  • Slack channel:发送告警的位置

当测试变得不稳定并达到您的阈值时,您将收到一条包含直接链接的通知,以便调查测试用例:

显示 Slack 不稳定测试告警消息的图片

对于自托管的 Tuist 部署,您需要创建自己的 Slack 应用并配置必要的环境变量。

  1. 转到 Slack API Apps 页面 并点击 Create New App
  2. 选择 From an app manifest 并选择要安装应用的工作区
  3. 粘贴以下清单,将重定向 URL 替换为您的 Tuist 服务器 URL:
{
"display_information": {
"name": "Tuist",
"description": "Get regular updates and alerts for your builds, tests, and caching.",
"background_color": "#6f2cff"
},
"features": {
"bot_user": {
"display_name": "Tuist",
"always_online": false
}
},
"oauth_config": {
"redirect_urls": [
"https://your-tuist-server.com/integrations/slack/callback"
],
"scopes": {
"bot": [
"chat:write",
"chat:write.public"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
  1. 审核并创建应用

配置环境变量 {#configure-environment}

Section titled “配置环境变量 {#configure-environment}”

在您的 Tuist 服务器上设置以下环境变量:

  • SLACK_CLIENT_ID - 来自您 Slack 应用的 Basic Information 页面的 Client ID
  • SLACK_CLIENT_SECRET - 来自您 Slack 应用的 Basic Information 页面的 Client Secret