消息通知

本文主要介绍如何在流水线中使用集成消息通知插件,通过运行状态与第三方系统的Webhook触发下发消息通知。

进入流水线编辑页,在需要的任务中添加插件,通知插件支持:钉钉机器人邮件Webhook企业微信机器人飞书机器人image

钉钉机器人通知

前提条件

  • 由于自定义机器人需要进行安全设置,请前往电脑端添加。

  • 创建一个钉钉群,并且已配置 Webhook 机器人(机器人配置参考)。

  1. 编辑流水线任务,在需要的步骤中添加钉钉机器人通知插件

    1. 单击钉钉群设置 > 机器人,复制钉钉机器人Webhook地址,配置到流水线通知插件中。

    2. 钉钉自定义机器人必须开启安全设置,若未使用加签,无需填写加签密钥

    3. 选择运行状态,当该流水线的任务进入选择状态后,会触发消息通知。

    4. 选择通知内容,所选的通知内容会自动添加至推送消息中。

    5. 支持填写自定义内容,支持引用环境变量,如${CI_COMMIT_TITLE},支持钉钉Markdown语法,查看帮助

    6. 支持@手机号,多个手机号(钉钉手机号)之间以,分隔,支持@all(输入all即可)。

    image

  2. 运行流水线任务,当执行到配置通知的步骤,获取到配置的运行状态时,触发消息通知,相应钉钉群会收到消息通知。

邮件通知

前提条件

需要拥有一个可以接收消息的邮箱地址。

  1. 编辑流水线任务,在需要的任务中添加邮件通知插件,填写邮件地址、选择运行时机

    image

  2. 运行流水线任务,当执行到配置通知的步骤,获取到配置的运行状态时,触发消息通知,邮箱会收到消息通知。

Webhook通知

前提条件

Webhook地址必须公网可访问,配置前建议您通过浏览器访问验证。

  1. 编辑流水线任务,在需要的步骤中添加Webhook通知插件,填写Webhook地址、选择运行状态

    image

  2. 运行流水线任务执行到配置通知插件步骤,并且获取到配置的运行状态时,发起 Webhook 调用。Flow发送的Webhook 一律为 Post 请求,任务状态信息的 Payload 示例如下。

    {
      "event": "task",
      "action": "status",
      "task": {
        "pipelineId": "183",
        "pipelineName": "test pipeline",
        "stageName": "构建",
        "taskName": "java构建",
        "buildNumber": "19",
        "statusCode": "SUCCESS", // UNKOWN, RUNNING, WAITING, CANCELLING, CANCELED,FINISH,SUCCESS,FAIL,SKIP  
        "statusName": "运行成功",
        "pipelineUrl": "https://***.aliyun.com/ec/pipelines/1565**?build=19",
        "message": "[test pipeline]流水线阶段[构建]任务[java构建]运行成功"
      },
      "sources": [
        {
          "repo": "git@gitlab:test.git",
          "branch": "master",
          "commitId": "xdfdfdff",
          "privousCommitId": "ddddd",
        }
      ],
      "globalParams": [
        {"key": "test", "value": "test1"},
        {"key": "test2", "value": "test2"}
      ]
    }

企业微信机器人通知

前提条件

需要创建一个微信群,并且已配置 Webhook 机器人。

image

  1. 编辑流水线任务,在需要的步骤中添加企业微信机器人通知插件

    1. 单击企业微信群设置 > 机器人,复制企业微信机器人Webhook地址,配置到流水线通知插件中。

    2. 选择运行状态,当该流水线的任务进入选择状态后,会触发消息通知。

    3. 选择通知内容,所选的通知内容会自动添加至推送消息中。

    4. 支持填写自定义内容,支持引用环境变量,如${CI_COMMIT_TITLE},支持钉钉Markdown语法,查看帮助

    5. 支持@user_id,多个手机号(企业微信 user_id)之间以,分隔,支持@all(输入all即可)。

      • 可以通过企业微信管理后台 -> 通讯录获取用户 user_id

    image

  2. 触发流水线运行,当流水线任务进入通知插件配置的运行状态时,触发消息通知,相应微信群即可收到消息通知。

飞书机器人通知

前提条件

需要创建一个飞书群,并且已配置 Webhook 机器人(机器人配置参考)。image

  1. 编辑流水线任务,在需要的步骤中添加飞书机器人通知插件

    1. 单击飞书群设置 > 机器人,复制飞书机器人Webhook地址,配置到流水线通知插件中。

    2. 若飞书机器人开启了“加签”,复制填写加签密钥。

    3. 选择运行状态,当该流水线的任务进入选择状态后,会触发消息通知。

    4. 选择通知内容,所选的通知内容会自动添加至推送消息中。

    5. 支持填写自定义内容,支持引用环境变量,如${CI_COMMIT_TITLE}。

    6. 支持@user_id,多个user_id(飞书user_id)之间以,分隔,支持@all(输入all即可)。

      • 可以通过飞书管理后台 -> 成员与部门获取用户 user_id。

    image

  2. 触发流水线运行,当流水线任务进入通知插件配置的运行状态时,触发消息通知,相应飞书群即可收到消息通知。