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

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}
            > 状态: <font color="comment">【{current_time}】构建中 🚀🚀🚀🚀🚀🚀</font>
            > [立即查看]({build_url})"""
        }
    }
else:
    message = {
        "msgtype": "markdown",
        "markdown": {
            "content": f"""**Jenkins构建通知**
            > 项目: {job_name}
            > 构建号: #{build_number}
            > 状态: 【{current_time}】<font color={'info' if build_status == build_correct_status else 'warning'}>{
                '成功 ✅' if build_status == build_correct_status else '失败 ❌'}</font>
            > [查看控制台]({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自动化部署微信小程序的最佳实践 #### 配置环境准备 为了确保能够顺利使用Jenkins来完成微信小程序的自动构建与部署工作,前期需要做好一系列准备工作。这包括但不限于安装并配置好Java环境以及下载对应的JDK版本;安装Node.js及其npm工具用于支持微信小程序项目的编译过程;最后还需确保已成功搭建起可正常运作的Jenkins服务器实例[^5]。 #### 创建Jenkins Job 进入Jenkins管理界面后创建一个新的Job,在此过程中需指定源码仓库地址以便后续能从Git或其他SCM系统拉取最新代码变更。对于微信小程序而言,通常还会涉及到特定于该项目的一些私有库文件或敏感信息(如API密钥),此时建议采用安全的方式存储这些数据,并通过插件形式引入至Build环境中[^2]。 #### 构建脚本编写 定义具体的构建逻辑是整个流程的核心部分之一。针对微信小程序的特点,一般会在`package.json`中预先设定好必要的NPM Scripts命令,比如`build:mp-weixin`专门用来处理Miniprogram平台下的资源打包操作。而在Jenkinsfile里,则可以通过调用上述自定义指令实现自动化执行目的: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo-url.git' } } stage('Install Dependencies') { steps { sh 'npm install' } } stage('Build Project') { steps { sh 'npm run build:mp-weixin --output-path=./dist/mp-weixin/' } } // 更多阶段... stage('Deploy to WeChat Server') { steps { script { withCredentials([string(credentialsId: 'wechat-appid', variable: 'APPID'), string(credentialsId: 'wechat-secret', variable: 'SECRET')]) { sh """ cd dist/mp-weixin/ curl -X POST https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${SECRET} \ | python3 -c "import sys, json; obj=json.load(sys.stdin); print(obj['access_token'])" > access_token.txt # 假设已经准备好了一个压缩后的更新包upload.zip curl -F media=@upload.zip \ -F upload_url=https://api.weixin.qq.com/wxa/uploadtemplate?access_token=$(cat access_token.txt) """ } } } } } } ``` 以上示例展示了如何利用Shell命令结合Wechat API接口向官方服务器提交审核材料的过程[^4]。 #### 测试验证环节 考虑到实际应用场景中的复杂性和不确定性因素影响,强烈推荐在正式上线之前先经过充分的功能性测试检验。借助像Appium这样的跨平台移动应用测试框架配合Pytest作为断言引擎可以帮助快速定位潜在缺陷所在位置,同时Allure报告生成功能让团队成员更加直观地了解到每次迭代的质量状况变化趋势图谱。 #### 发布通知机制 当所有前置条件均已满足之后就可以考虑安排最终发布事宜了。值得注意的是首次部署可能会花费较长时间才能结束,期间除了密切监控日志输出外还可以设置消息推送提醒功能告知相关人员当前进度情况,例如发送邮件或者触发企业微信群聊机器人广播等动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值