配置构建通知

请注意,如果您仍在使用 travis-ci.org,则需要在所有显示在此页面上的命令中使用 --org 而不是 --com

Travis CI 可以通过电子邮件、IRC、聊天或自定义 Webhook 向您通知构建结果。

默认通知设置 #

默认情况下,当提交者和提交作者是存储库的成员时,会向他们发送电子邮件通知,也就是说,他们具有

  • 对公共存储库的推送或管理员权限。
  • 对私有存储库的拉取、推送或管理员权限。

当在给定分支上时会发送电子邮件

  • 构建刚刚中断或仍然中断。
  • 先前中断的构建刚刚修复。

有关更多信息,请阅读 默认电子邮件地址更改电子邮件地址电子邮件通知故障排除

如果您添加另一个通知渠道,例如 HipChat 或 Slack,默认情况下会在每次构建时发送通知。

条件通知 #

您可以通过在构建配置(您的 .travis.yml 文件)中使用 if 指定条件来过滤和拒绝通知。

例如,这将仅在 master 分支上的构建时发送 Slack 通知

# require the branch name to be master (note for PRs this is the base branch name)
notifications:
  slack:
    if: branch = master

有关指定条件的详细信息,请参阅 条件

您可以在我们的 Travis CI 构建配置参考 中找到有关 电子邮件通知 的构建配置格式的更多信息。

更改通知频率 #

您可以通过将 on_successon_failure 标志设置为以下之一来更改任何通知渠道的条件

  • always:始终发送通知。
  • never:从不发送通知。
  • change:当构建状态发生变化时发送通知。

例如,要始终在构建成功时发送 Slack 通知

notifications:
  slack:
    on_success: always

注意:这些 Webhook 在构建结束时执行,而不是由单个作业执行(请参阅 构建与作业)。这意味着构建中的环境变量在本节中不可用。

目前无法将通知限制在特定分支,但有效负载将包含在接收端执行此操作的所有相关数据(请参阅 Webhook 传送格式)。

关于 SSL/TLS 密码的说明 #

当通过 SSL/TLS 发布通知时,请注意接收服务器接受了哪些密码。如果接收服务器的密码都不起作用,则通知将失败。

目前,已知以下密码(由 openssl gem 定义)有效

AES-128-CBC AES-128-CBC-HMAC-SHA1 AES-128-CBC-HMAC-SHA256 AES-128-CCM
AES-128-CFB AES-128-CFB1 AES-128-CFB8 AES-128-CTR AES-128-ECB AES-128-GCM
AES-128-OCB AES-128-OFB AES-128-XTS AES-192-CBC AES-192-CCM AES-192-CFB
AES-192-CFB1 AES-192-CFB8 AES-192-CTR AES-192-ECB AES-192-GCM AES-192-OCB
AES-192-OFB AES-256-CBC AES-256-CBC-HMAC-SHA1 AES-256-CBC-HMAC-SHA256
AES-256-CCM AES-256-CFB AES-256-CFB1 AES-256-CFB8 AES-256-CTR AES-256-ECB
AES-256-GCM AES-256-OCB AES-256-OFB AES-256-XTS AES128 AES128-WRAP AES192
AES192-WRAP AES256 AES256-WRAP ARIA-128-CBC ARIA-128-CCM ARIA-128-CFB
ARIA-128-CFB1 ARIA-128-CFB8 ARIA-128-CTR ARIA-128-ECB ARIA-128-GCM ARIA-128-OFB
ARIA-192-CBC ARIA-192-CCM ARIA-192-CFB ARIA-192-CFB1 ARIA-192-CFB8 ARIA-192-CTR
ARIA-192-ECB ARIA-192-GCM ARIA-192-OFB ARIA-256-CBC ARIA-256-CCM ARIA-256-CFB
ARIA-256-CFB1 ARIA-256-CFB8 ARIA-256-CTR ARIA-256-ECB ARIA-256-GCM ARIA-256-OFB
ARIA128 ARIA192 ARIA256 BF BF-CBC BF-CFB BF-ECB BF-OFB BLOWFISH
CAMELLIA-128-CBC CAMELLIA-128-CFB CAMELLIA-128-CFB1 CAMELLIA-128-CFB8
CAMELLIA-128-CTR CAMELLIA-128-ECB CAMELLIA-128-OFB CAMELLIA-192-CBC
CAMELLIA-192-CFB CAMELLIA-192-CFB1 CAMELLIA-192-CFB8 CAMELLIA-192-CTR
CAMELLIA-192-ECB CAMELLIA-192-OFB CAMELLIA-256-CBC CAMELLIA-256-CFB
CAMELLIA-256-CFB1 CAMELLIA-256-CFB8 CAMELLIA-256-CTR CAMELLIA-256-ECB
CAMELLIA-256-OFB CAMELLIA128 CAMELLIA192 CAMELLIA256 CAST CAST-CBC CAST5-CBC
CAST5-CFB CAST5-ECB CAST5-OFB CHACHA20 CHACHA20-POLY1305 DES DES-CBC DES-CFB
DES-CFB1 DES-CFB8 DES-ECB DES-EDE DES-EDE-CBC DES-EDE-CFB DES-EDE-ECB
DES-EDE-OFB DES-EDE3 DES-EDE3-CBC DES-EDE3-CFB DES-EDE3-CFB1 DES-EDE3-CFB8
DES-EDE3-ECB DES-EDE3-OFB DES-OFB DES3 DES3-WRAP DESX DESX-CBC ID-AES128-CCM
ID-AES128-GCM ID-AES128-WRAP ID-AES128-WRAP-PAD ID-AES192-CCM ID-AES192-GCM
ID-AES192-WRAP ID-AES192-WRAP-PAD ID-AES256-CCM ID-AES256-GCM ID-AES256-WRAP
ID-AES256-WRAP-PAD ID-SMIME-ALG-CMS3DESWRAP RC2 RC2-128 RC2-40 RC2-40-CBC
RC2-64 RC2-64-CBC RC2-CBC RC2-CFB RC2-ECB RC2-OFB RC4 RC4-40 RC4-HMAC-MD5 SEED
SEED-CBC SEED-CFB SEED-ECB SEED-OFB SM4 SM4-CBC SM4-CFB SM4-CTR SM4-ECB SM4-OFB

此外,请参阅 密码套件名称映射

关于 IP 地址的说明 #

所有使用 HTTP 的通知都通过具有静态 IP 地址的代理发送,以确保安全列表和防火墙规则的稳定性。当前的 IP 地址是

54.173.229.200
54.175.230.252

配置电子邮件通知 #

指定将收到有关构建结果通知的收件人

notifications:
  email:
    - one@example.com
    - other@example.com

完全关闭电子邮件通知

notifications:
  email: false

指定您何时想要 收到通知

notifications:
  email:
    recipients:
      - one@example.com
      - other@example.com
    on_success: never # default: change
    on_failure: always # default: always

拉取请求构建不会触发电子邮件通知。

构建电子邮件接收者是如何确定的? #

默认情况下,构建电子邮件会发送给提交者和作者,但前提是他们有权访问提交了提交的存储库。这可以防止在 Travis CI 上活跃的分支在将任何上游更改推送到其分支时通知上游存储库的所有者。它还可以防止构建通知发送给未在 Travis CI 上注册的人员。

然后根据提交中的电子邮件地址确定电子邮件地址,但前提是它与我们数据库中的电子邮件地址之一匹配。我们会同步来自 GitHub 的所有电子邮件地址,仅用于构建通知的目的。

默认值可以在 .travis.yml 中覆盖,如上所示。如果指定了设置,Travis CI 仅向其中指定的地址发送电子邮件,而不是发送给提交者和作者。

更改构建通知的电子邮件地址 #

Travis CI 仅将构建通知发送给 GitHub 上注册的电子邮件地址。如果您注册了多个地址,您可以使用 git 为特定存储库设置电子邮件地址

请注意,这还会更改提交电子邮件地址,而不仅仅是 Travis CI 通知设置。

git config user.email "mynewemail@example.com"

或者为所有 Git 存储库设置电子邮件

git config --global user.email "mynewemail@example.com"

请注意,我们目前不尊重 GitHub 上的 详细通知设置,因为它们目前无法通过 API 访问。

缺少构建通知 #

除了没有在 Travis CI 上拥有用户帐户外,未收到构建通知的最常见原因是在 GitHub 上使用未注册且未验证的电子邮件地址。请参阅上面的内容了解如何将电子邮件地址更改为已注册的地址,或确保将此存储库中使用的电子邮件地址添加到 GitHub 上的 已验证的电子邮件地址

配置 IRC 通知 #

您还可以将通知发送到 IRC 频道。通知来自 travis-ci,它会在 Freenode 上自动身份验证。

notifications:
  irc: "chat.freenode.net#my-channel"

或多个频道

notifications:
  irc:
    - "chat.freenode.net#my-channel"
    - "chat.freenode.net#some-other-channel"
    - "irc://chat.freenode.net:8000/#plaintext_channel"
    - "ircs://chat.freenode.net:7070/#ssl_tls_channel"

与其他通知类型一样,您可以指定何时发送 IRC 通知

notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
      - "chat.freenode.net#some-other-channel"
    on_success: change # default: always
    on_failure: always # default: always

使用模板自定义将发送到频道(s)的消息

notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
      - "chat.freenode.net#some-other-channel"
    template:
      - "%{repository_slug} (%{commit}) : %{message}"
      - "Build details: %{build_url}"

您可以插入以下变量

  • repository_slug:您的 GitHub 存储库标识符(例如 svenfuchs/minimal
  • repository_name:不含用户名 的短标识符
  • repository:与 repository_slug 相同 [已弃用]
  • build_number:构建编号
  • build_id:构建 ID
  • branch:构建分支名称
  • commit:简化的提交 SHA
  • author:提交者姓名
  • commit_message:构建的提交消息
  • commit_subject:提交消息的第一行
  • result:构建结果
  • message:Travis 发送给构建的消息
  • duration:矩阵中所有构建的总持续时间
  • elapsed_time:构建开始到结束之间的时间
  • compare_url:提交更改视图 URL
  • build_url:构建详细信息的 URL

默认模板为

notifications:
  irc:
    template:
      - "%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}"
      - "Change view : %{compare_url}"
      - "Build details : %{build_url}"

如果您希望机器人使用通知而不是常规消息,可以使用 use_notice 标志

notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
      - "chat.freenode.net#some-other-channel"
    on_success: change # default: always
    on_failure: always # default: always
    use_notice: true

如果您希望机器人不加入并在发送消息之前使用,请使用 skip_join 标志

notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
      - "chat.freenode.net#some-other-channel"
    on_success: change # default: always
    on_failure: always # default: always
    use_notice: true
    skip_join: true

如果您启用了 skip_join,请记住从机器人通知的 IRC 频道(s) 中删除 NO_EXTERNAL_MSGS 标志 (n)。

拉取请求构建不会触发 IRC 通知。

通道密钥 #

如果您希望机器人向受通道密钥保护的通道发送消息(例如,使用 /mode #channel +k password 设置),请使用 channel_key 变量。

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 此值。

travis encrypt password --add notifications.irc.channel_key
notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
    channel_key: 'password'

密码保护的服务器 #

您也可以使用用户身份验证到 IRC 服务器

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 此值。

travis encrypt password --add notifications.irc.channel_key
travis encrypt password --add notifications.irc.password
notifications:
  irc:
    channels:
      - "chat.freenode.net#my-channel"
    channel_key: 'password'
    nick: travisci
    password: super_secret

配置 Campfire 通知 #

通知也可以发送到 Campfire 聊天室,使用以下格式

notifications:
  campfire: "[subdomain]:[api token]@[room id]"
  • 子域:是您的 Campfire 子域(例如,如果您访问 https://your-subdomain.campfirenow.com,则为 your-subdomain)。
  • API 令牌:是您要用来发布通知的用户令牌。
  • 房间 ID:这是房间 ID,而不是名称。

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 此值。

travis encrypt subdomain:api_token@room_id --add notifications.campfire.rooms

您也可以像 IRC 通知 一样自定义通知。

notifications:
  campfire:
    rooms:
      - "[subdomain]:[api token]@[room id]"
    template:
      - "%{repository_slug} (%{commit}) : %{message}"
      - "Build details: %{build_url}"

其他标志(如 on_successon_failure)的工作方式与 IRC 通知配置中的方式相同。

拉取请求构建不会触发 Campfire 通知。

配置 Flowdock 通知 #

通知可以发送到您的 Flowdock 团队收件箱,使用以下格式

notifications:
  flowdock: "[api token]"
  • API 令牌:是您要通知的团队收件箱的 API 令牌。您可以传递多个令牌,用逗号分隔的字符串或数组表示。

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 此值。

travis encrypt api_token --add notifications.flowdock

拉取请求构建不会触发 Flowdock 通知。

配置 HipChat 通知 #

使用您 .travis.yml 中的以下键向您的 HipChat 房间发送通知

notifications:
  hipchat: "[api token]@[room id or name]"
  • api token:您要以该用户身份发布通知的令牌。以下是几种选择:
    • 您的组管理员提供的 API v1 令牌。
    • 您管理的 API v2 令牌。
  • hostname:可选,默认值为 api.hipchat.com,但可以为 HipChat Server 实例指定。
  • room idname:您要通知的房间的 ID 或名称(区分大小写)。如果您的房间名称包含空格,请使用房间 ID。

如果您的 .travis.yml 存储在公共存储库中,请始终 加密 此值。

travis encrypt api_token@room_id_or_name --add notifications.hipchat.rooms

如果您运行的是 HipChat Server,请改用以下方式指定主机名

notifications:
  hipchat: "[api token]@[hostname]/[room id or name]"

HipChat 通知也支持模板,因此您可以自定义通知的外观,例如将其缩减为一行

notifications:
  hipchat:
    rooms:
      - "[api token]@[room id or name]"
    template:
      - "%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}"

如果您要发送 HTML 通知,您需要添加 format: html(注意,这与某些功能不兼容,例如 @mentions 和自动链接)

notifications:
  hipchat:
    rooms:
      - "[api token]@[room id or name]"
    template:
      - "%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message} (<a href='%{build_url}'>Details</a>/<a href='%{compare_url}'>Change view</a>)"
    format: html

使用 V2 API,您可以通过设置 notify: true 来触发用户通知。

notifications:
  hipchat:
    rooms:
      - "[api token]@[room id or name]"
    template:
      - "%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}"
    notify: true

在通知中设置“来自”值 #

使用 V1 令牌时,通知将由“Travis CI”发布。

使用 V2 令牌时,此值由令牌的标签设置。创建一个专门用于房间通知的令牌(在房间的“管理”部分下的“令牌”中),并使用此令牌。

HipChat Room Notification Tokens screenshot

PR 构建的通知 #

默认情况下,Hipchat 会在推送构建和拉取请求构建时收到通知。

通过将 on_pull_requests: false 添加到您 .travis.ymlhipchat 部分,关闭拉取请求通知。

notifications:
  hipchat:
    on_pull_requests: false

配置 Pushover 通知 #

通知也可以通过 Pushover 发送,使用以下格式

notifications:
  pushover:
    api_key: "[api token]"
    users:
      - "[user key]"
  • API 令牌:Pushover 应用程序的 API 令牌/密钥(登录 Pushover 后在“您的应用程序”下创建;建议创建一个专门用于 Travis CI 的密钥)。
  • 用户密钥:要通知用户的用户密钥(登录 Pushover 后可以看到)。支持多个用户列表。

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 这些值;这将添加(或覆盖)您的 api_token,并将指定的 user_key 附加到用户列表中。

travis encrypt [api_token] --add notifications.pushover.api_key
travis encrypt [user_key] --add notifications.pushover.users --append

您也可以像 IRC 通知一样自定义通知。

notifications:
  pushover:
    api_key: "[api token]"
    users:
      - "[user key]"
      - "[user key]"
    template: "%{repository_slug} (%{commit}) : %{message} - Build details: %{build_url}"

其他标志(如 on_successon_failure)的工作方式与 IRC 通知配置相同。

拉取请求构建不会触发 Pushover 通知。

配置 Slack 通知 #

Travis CI 可以向您的 Slack 频道发送有关构建结果的通知。

在 Slack 上,设置一个 新的 Travis CI 集成

Screenshot of adding Slack integration

将设置复制粘贴到您的 .travis.yml 中,其中已经包含了正确的令牌,您就可以开始使用。

注意:如果您的 .travis.yml 存储在公共存储库中,我们强烈建议您 加密 此值。

travis encrypt "<account>:<token>" --add notifications.slack.rooms

最简单的配置需要您的帐户名称和您刚刚生成的令牌。

notifications:
  slack: '<account>:<token>'

要指定不同的频道,请使用 # 将频道与帐户和令牌隔开,将其添加到配置中

notifications:
  slack: '<account>:<token>#development'

要使用加密凭据指定不同的频道,请使用

travis encrypt "<account>:<token>#channel" --add notifications.slack.rooms

您也可以指定多个频道。

notifications:
  slack:
    rooms:
      - <account>:<token>#development
      - <account>:<token>#general
    on_success: change # default: always
    on_failure: always # default: always

类似地,您也可以使用频道覆盖语法与加密凭据一起使用。

travis encrypt "<account>:<token>#channel" --add notifications.slack.rooms

以下是使用加密凭据的设置示例

notifications:
  slack:
    rooms:
      - secure: "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
    on_success: always

一切设置完成后,推送新的提交,您将在 Slack 频道中收到消息。

PR 构建的通知 #

通过将 on_pull_requests: false 添加到您 .travis.ymlslack 部分,关闭拉取请求通知。

notifications:
  slack:
    on_pull_requests: false

自定义 Slack 通知 #

通过编辑模板来自定义通知消息,例如以下示例

notifications:
  slack:
    template:
      - "%{repository_slug} (%{commit}) : %{message}"
      - "Build details: %{build_url}"

推送构建的默认模板为

notifications:
  slack:
    template:
    - "Build <%{build_url}|#%{build_number}> (<%{compare_url}|%{commit}>) of %{repository_slug}@%{branch} by %{author} %{result} in %{duration}"

而拉取请求构建的默认模板为

notifications:
  slack:
    template:
    - "Build <%{build_url}|#%{build_number}> (<%{compare_url}|%{commit}>) of %{repository_slug}@%{branch} in PR <%{pull_request_url}|#%{pull_request_number}> by %{author} %{result} in %{duration}"

您也可以使用 Slack 风格的标记,使用 ````_*~。有关消息格式的更多信息,请参阅 Slack 文档

您可以为推送构建插入以下变量

  • repository_slug:您的 GitHub 存储库标识符(例如 svenfuchs/minimal
  • repository_name:不含用户名 的短标识符
  • repository:与 repository_slug 相同 [已弃用]
  • build_number:构建编号
  • build_id:构建 ID
  • branch:构建分支名称
  • commit:简化的提交 SHA
  • author:提交者姓名
  • commit_message:构建的提交消息
  • commit_subject:提交消息的第一行
  • result:构建结果
  • message:Travis 发送给构建的消息
  • duration:矩阵中所有构建的总持续时间
  • elapsed_time:构建开始到结束之间的时间
  • compare_url:提交更改视图 URL
  • build_url:构建详细信息的 URL

您可以为 PR 构建插入以下变量,以及推送构建中可用的变量

  • pull_request:对于 PR 构建返回 true
  • pull_request_number:PR 号码
  • pull_request_url:PR URL

配置 Webhook 通知 #

您可以定义 Webhook,以接收有关构建结果的通知

notifications:
  webhooks: http://your-domain.com/notifications

或多个 URL

notifications:
  webhooks:
    - http://your-domain.com/notifications
    - http://another-domain.com/notifications

与其他通知类型一样,您可以指定何时发送 Webhook 有效负载

notifications:
  webhooks:
    urls:
      - http://hooks.mydomain.com/travisci
      - http://hooks.mydomain.com/events
    on_success: change # default: always
    on_failure: always # default: always
    on_start:   change # default: never
    on_cancel:  always # default: always
    on_error:   always # default: always

Webhook 传递格式 #

Webhook 使用 HTTP POST 以 application/x-www-form-urlencoded 内容类型传递,主体包含一个 payload 参数,该参数包含以 URL 编码格式表示的 JSON Webhook 有效负载。

以下是发送到 Travis CI 文档应用程序 的有效负载

您将在表示构建状态的 status/result 字段中看到以下值之一。

  • 0:表示已成功完成的构建
  • 1:表示尚未完成的构建或已完成且失败的构建

此外,status_message/result_message 字段中将存在一条消息,进一步描述构建的状态。

  • Pending:已请求构建
  • Passed:构建已成功完成
  • Fixed:在先前失败的构建后,构建已成功完成
  • Broken:在先前成功的构建后,构建已失败
  • Failed:构建是新分支的第一个构建,并且已失败
  • Still Failing:在先前失败的构建后,构建已失败
  • Canceled:构建已取消
  • Errored:构建已出错

type 字段可用于查找导致此构建运行的事件类型。其值为 pushpull_requestcronapi 之一。对于拉取请求,type 字段的值将为 pull_request,并且还包含一个 pull_request_number 字段,指向 GitHub 上的拉取请求问题编号。

为了快速识别所涉及的存储库,我们包含了一个 Travis-Repo-Slug 标头,其格式为 account/repository,例如 travis-ci/travis-ci

验证 Webhook 请求 #

为了确保工作流的完整性,我们强烈建议您在执行操作之前验证 POST 请求。

POST 请求带有一个自定义 HTTP 标头 Signature。使用发布的 SSL 公钥,您可以验证有效负载的签名。

  1. 从 HTTP 请求的主体中获取 payload 数据。
  2. 获取 Signature 标头值,并对其进行 Base64 解码。
  3. 获取与签署有效负载的私钥相对应的公钥。此公钥在相关 API 服务器上的 /config 端点的 config.notifications.webhook.public_key 中提供。(例如,https://api.travis-ci.com/config
  4. 使用公钥和 SHA1 摘要验证签名。

示例 #

  1. WebhookSignatureVerifier 是一个小型 Sinatra 应用程序,它向您展示了它是如何工作的。

  2. 此文档站点会收到 Webhook 通知,验证请求并更新显示上述有效负载示例的 Gist。请参阅 代码

  3. Travis Webhook Checker 是一个 Django 视图示例,它在 Python 中实现了此功能。

  4. Travis Golang Hooks Verification 是一个用 Go 编写的用于验证钩子的小型 Web 应用程序。

  5. travis-webhook-verification-nodejs 包含两个用于使用 expresshapi.js 在 Node.js 中验证 Webhook 的示例。

配置 OpsGenie 通知 #

通过使用 OpsGenie Travis CI 集成,您可以将 Travis CI 警报转发到 OpsGenie。OpsGenie 可以根据轮值安排确定要通知的合适人员,使用电子邮件、短信(SMS)、电话以及 iPhone 和 Android 推送通知,并在警报得到确认或关闭之前升级警报。

集成的功能 #

  • 当 Travis CI 上项目的狀態为失败、中断或出错时,该集成会自动在 OpsGenie 中创建警报。
  • 当 Travis CI 上的状态变为通过或已修复时,OpsGenie 中的警报将被关闭。

在 OpsGenie 中添加 Travis CI 集成 #

  1. 如果您还没有 OpsGenie 帐户,请创建一个。
  2. 转到 OpsGenie Travis CI 集成页面。
  3. 使用“团队”字段指定应为 Travis CI 警报通知的人员。键入时会提供自动完成功能建议。
  4. 点击复制按钮或选择复制 Webhook URL。
  5. 点击“保存集成”。

在 Travis CI 中配置 #

  1. 通过在 Github 上为 Travis CI 启用服务钩子,激活您要监控的 Github 仓库。
  2. 在您的仓库中添加 .travis.yml 文件。
  3. 在您的 .travis.yml 文件中添加以下配置。notifications: _webhooks_
  4. .travis.yml 文件提交到您仓库的根目录。

配置具有不同配置的多个通知目标 #

上面描述的每个通知器也可以接受一个哈希数组作为配置,每个元素都是该通知器的配置,如上所述。当您希望根据构建结果获得不同的通知行为时,这很有用。

例如,您可能拥有用于通知成功构建和失败构建的不同 Slack 频道,使用非默认模板。

notifications:
  slack:
    - rooms:
        - <account>:<token>#failures
      on_success: never
      on_failure: always
      template:
        - "%{repository_slug} (%{commit}) : %{message}"
        - "Build details: %{build_url}"
    - rooms:
        - <account>:<token>#successes
      on_success: always
      on_failure: never
      template:
        - "%{repository_slug} (%{commit}) : %{message}"
        - "Build details: %{build_url}"