Jenkins调用python脚本通过机器人发送信息到企业微信

文章目录

  • 1、上代码(核心py脚本)
  • 2、调用示例

1、上代码(核心py脚本)

import requests
import os
import sys
from datetime import datetime

WEBHOOK_URL = "replace with your robot webhook url."

build_correct_status = sys.argv[1]
build_status = sys.argv[2]
is_build_start = sys.argv[3] == "1"
job_name = os.getenv('JOB_NAME')
build_number = os.getenv('BUILD_NUMBER')
build_url = os.getenv('BUILD_URL')
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 读取控制台日志(路径由Jenkins传入)
# log_path = os.getenv('BUILD_LOG', 'console.txt')
# with open(log_path, 'r', encoding='utf-8') as f:
#     log_snippet = ''.join(f.readlines()[-100:])

if is_build_start:
    # 构建开始消息
    message = {
        "msgtype": "markdown",
        "markdown": {
            "content": f"""**Jenkins构建启动通知**
            > 项目: {job_name}
            > 构建号: #{build_number}
            > 状态: {current_time}】构建中 
            > [立即查看]({build_url})"""
        }
    }
else:
    message = {
        "msgtype": "markdown",
        "markdown": {
            "content": f"""**Jenkins构建通知**
            > 项目: {job_name}
            > 构建号: #{build_number}
            > 状态: 【{current_time}{'info' if build_status == build_correct_status else 'warning'}>{
                '成功 ✅' if build_status == build_correct_status else '失败 ❌'}
            > [查看控制台]({build_url}console)
            ```\n{build_status}\n```"""
        }
    }

response = requests.post(WEBHOOK_URL, json=message)
print(response.text)

2、调用示例

# 注意,下面的your_py_file.exe 为打包出来的可执行文件
call your_py_file.exe %correct_status% %exe_status% 0

你可能感兴趣的:(jenkins,python,机器人)