【Linux】+【Jenkins】+【飞书机器人】发送通知(带签名)

文章目录

  • ?如何使用
    • ?在linux 上安装python 环境
    • ?发送消息python脚本
      • ?把脚本上传倒linux上
      • ?jenkins 上执行脚本
  • ?步骤总结

?如何使用


  • 自定义机器人使用指南飞书官网https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

?在linux 上安装python 环境


yum install python3 python3-devel python3-pip
# 请求工具
python3 -m pip install requests

?发送消息python脚本


  • 我这个设置了签名的,具体怎么设置签名可以查看飞书官方文档
    在这里插入图片描述
#!/usr/bin/env python
# -*- encoding:utf-8 -*-

import sys

import requests

import time
import hashlib
import base64
import hmac
import calendar


def gen_sign(timestamp, secret):
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    hmac_code = hmac.new(string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()

    # 对结果进行base64处理
    sign = base64.b64encode(hmac_code).decode('utf-8')

    return sign


JOB_URL = sys.argv[1]
JOB_NAME = sys.argv[2]
BUILD_NUMBER = sys.argv[3]
isFinish = "开始构建" if str(sys.argv[4]) == str(0) else "构建完成"
timestamp = str(calendar.timegm(time.gmtime()))
currenttime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
sign_key = '你的签名'
sgin = gen_sign(timestamp, sign_key)
url = '你的webhook 地址'
method = 'post'
headers = {
    'Content-Type': 'application/json'
}
json = {
    "timestamp": "" + timestamp + "",
    "msg_type": "interactive",
    "sign": "" + sgin + "",
    "card": {
        "config": {
            "wide_screen_mode": True,
            "enable_forward": True
        },
        "elements": [{
            "tag": "div",
            "text": {
                "content": "项目名称:" + JOB_NAME + "\n构建编号:第" + BUILD_NUMBER + "次构建\n运行时间:" + currenttime,
                "tag": "lark_md"
            }
        }, {
            "actions": [{
                "tag": "button",
                "text": {
                    "content": "查看报告",
                    "tag": "lark_md"
                },
                "url": JOB_URL,
                "type": "default",
                "value": {}
            }],
            "tag": "action"
        }],
        "header": {
            "title": {
                "content": JOB_NAME + " "+isFinish+"",
                "tag": "plain_text"
            }
        }
    }
}
requests.request(method=method, url=url, headers=headers, json=json)

?把脚本上传倒linux上


在这里插入图片描述
可以看到上传去是没有执行权限的,一定要记得叫上执行权限

  • chmod +x sendMsg.py

?jenkins 上执行脚本


  • 最后一个参数标识 0 开始构建 1 构建完成
    /opt/java/script/sendMsg.py这一段不要跟着我写 根据自己存放的位置和名字来
python3 /opt/java/script/sendMsg.py $JOB_URL $JOB_NAME $BUILD_NUMBER 0

在这里插入图片描述
在这里插入图片描述文章来源地址https://uudwc.com/A/qByGM

?步骤总结

  • 在Linux环境下使用Jenkins来构建和部署项目,并通过飞书机器人发送通知的步骤如下:
    1. 安装和配置Jenkins:首先,需要在Linux服务器上安装和配置Jenkins。可以按照Jenkins官方文档提供的步骤进行安装,并确保Jenkins服务器正常运行。
    2. 创建Jenkins任务:使用Jenkins的Web界面创建一个新的任务或者选择现有的任务。任务可以是一个构建或部署项目的作业。
    3. 配置构建步骤:在任务的配置页面上,配置构建步骤,例如从代码仓库拉取代码、编译项目、运行测试等。根据项目的需求和具体操作,可以添加一系列构建步骤。
    4. 安装和配置飞书机器人插件:在Jenkins的插件管理页面中,搜索并安装飞书机器人插件。安装完成后,在全局配置页面中,配置飞书机器人的Webhook URL,这将用于发送通知消息到飞书。
    5. 添加Post-build Actions:在任务的配置页面上,找到“Post-build Actions”部分,选择“Send notification to Feishu”选项。在该选项中,填写消息的标题、内容等信息,可以使用Jenkins的环境变量来动态地生成通知内容。
    6. 保存并触发构建:完成所有配置后,保存任务的设置。然后,手动触发构建,或者设置定时触发构建等方式启动任务。
    7. 查看飞书通知:一旦Jenkins任务完成构建,飞书机器人将根据配置的Webhook URL发送通知消息。在飞书中登陆相应的机器人账号,即可查看接收到的通知信息。
  • 通过上述步骤,你可以在Linux环境下使用Jenkins进行项目构建和部署,并通过飞书机器人实现通知功能。这样可以及时了解项目构建的状态或者其他相关信息,提高开发和运维的效率。

原文地址:https://blog.csdn.net/qq_39017153/article/details/131974825

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年08月06日 07:38
解决前后端分离Vue项目部署到服务器后出现的302重定向问题
下一篇 2023年08月06日 07:39