消息通知

本文主要介绍如何在流水线中使用集成消息通知插件,通过运行状态与第三方系统的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. 触发流水线运行,当流水线任务进入通知插件配置的运行状态时,触发消息通知,相应飞书群即可收到消息通知。