当前位置: 首页 > wzjs >正文

html5做宠物饲养网站深圳航空公司官方网站首页

html5做宠物饲养网站,深圳航空公司官方网站首页,郑州网站关键词优化外包,wordpress 轮播图自适应简介 通过 Python 脚本自动化获取 Jenkins 构建日志,可以实现日志分析、错误监控、报告生成等功能。本文档将介绍以下方法: Python-Jenkins 库:官方推荐的 Python 客户端库 日志分页与流式处理:应对大日志文件场景 准备工作 …

简介

通过 Python 脚本自动化获取 Jenkins 构建日志,可以实现日志分析、错误监控、报告生成等功能。本文档将介绍以下方法:

Python-Jenkins 库:官方推荐的 Python 客户端库

日志分页与流式处理:应对大日志文件场景

准备工作

安装依赖库

# 安装 python-jenkins 库(推荐)
pip install python-jenkins

获取 Jenkins 访问凭证
登录 Jenkins Web 界面
点击右上角用户名 > Configure
在 API Token 区域生成 Token(需记录保存)

使用 python-jenkins 库

初始化客户端连接

# 创建 Jenkins 客户端实例
import jenkins
j = jenkins.Jenkins(url='http://jenkins.demonlg.cn',username='your_username',password='your_api_token'  # 或直接使用 API Token
)
# 验证连接
user = j.get_whoami()
print(f"Connected to Jenkins as {user['fullName']}")
**获取构建日志**
```python
def get_build_log(job_name, build_number):try:log = j.get_build_console_output(job_name, build_number)return logexcept jenkins.NotFoundException:print(f"Build #{build_number} not found")except jenkins.JenkinsException as e:print(f"Error: {str(e)}")# 示例:获取 job "my-project" 的最近一次构建日志
last_build = j.get_job_info('my-project')['lastCompletedBuild']['number']
log = get_build_log('my-project', last_build)
print(log[:500])  # 打印前500字符

参数说明

job_name:任务名称(区分大小写)

build_number:构建号(整数)或 ‘lastBuild’ 关键字

支持代理配置:通过 j= Jenkins(…, proxies={‘http’: ‘http://proxy:port’})

使用 Requests 直接调用 API

基础请求示例

import requests
import jenkins
j = jenkins.Jenkins(url='http://jenkins.demonlg.cn',username='your_username',password='your_api_token'  # 或直接使用 API Token
)
def fetch_log(job_name, build_number):url = f"http://jenkins.example.com/job/{job_name}/{build_number}/consoleText"response = j.jenkins_open(requests.Request('GET', url,headers=DEFAULT_HEADERS)))if response.status_code == 200:return response.textelse:raise Exception(f"Request failed: {response.status_code}")# 示例调用
log = fetch_log('android-ci', 42)

高级用法

  • 过滤特定时间段的构建
import datetimedef find_failed_builds(job_name, days=7):builds = j.get_job_info(job_name)['builds']cutoff = datetime.datetime.now() - datetime.timedelta(days=days)results = []for build in builds:build_info = j.get_build_info(job_name, build['number'])timestamp = build_info['timestamp'] / 1000  # 转换为秒if (datetime.datetime.fromtimestamp(timestamp) > cutoff andbuild_info['result'] == 'FAILURE'):results.append(build['number'])return results# 获取最近7天失败的构建号
failed_builds = find_failed_builds('backend-tests')
print(f"Failed builds: {failed_builds}")
  • 日志实时监控
from time import sleep
def monitor_running_build(job_name):while True:build_info = j.get_job_info(job_name)['lastBuild']if build_info['building']:log = j.get_build_console_output(job_name, build_info['number'])print(log.splitlines()[-10:])  # 显示最后10行sleep(10)  # 每10秒检查一次else:print("Build completed")break# 监控正在运行的构建
monitor_running_build('mobile-deploy')
  • 获取特定阶段(stage)OR特定指令(step)日志
    源生接口只能获取整个流水线的日志,如果想获取stage的日志需要自行实现。那如何实现呢?
    有2种方法 pipeline接口or BlueOcean接口。

错误处理建议

  • 常见异常处理
try:log = j.get_build_console_output('invalid-job', 999)
except jenkins.NotFoundException:print("Job or build does not exist")
except jenkins.JenkinsException as e:print(f"Jenkins API error: {str(e)}")
except requests.exceptions.ConnectionError:print("Network connection failed")
  • 重试机制
from tenacity import retry, stop_after_attempt, wait_exponential@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, max=10))
def safe_fetch_log(job_name, build_number):return fetch_log(job_name, build_number)

安全注意事项

凭证存储:避免硬编码凭证,推荐使用环境变量:

import os
username = os.environ.get('JENKINS_USER')
token = os.environ.get('JENKINS_TOKEN')

未更新完后续继续更新。。。


文章转载自:

http://pbqG65Xr.qpsdq.cn
http://5WXmbqtj.qpsdq.cn
http://qUf43Ln2.qpsdq.cn
http://HmFCgpK8.qpsdq.cn
http://FBvD7Ewt.qpsdq.cn
http://Z47l0dGA.qpsdq.cn
http://S6qmKRwD.qpsdq.cn
http://LCxXU2Bm.qpsdq.cn
http://3UX4QSYH.qpsdq.cn
http://aakhnOpZ.qpsdq.cn
http://MAIBHMf2.qpsdq.cn
http://EN9bZmpp.qpsdq.cn
http://s5SJ6ohO.qpsdq.cn
http://m2WKXuaj.qpsdq.cn
http://6fsLOS2a.qpsdq.cn
http://oljsliW8.qpsdq.cn
http://ZLAcgHJU.qpsdq.cn
http://w8fkujEY.qpsdq.cn
http://t4RhrN1h.qpsdq.cn
http://2LrS2a10.qpsdq.cn
http://wM2TaS5i.qpsdq.cn
http://A2mRrzZS.qpsdq.cn
http://XI211bWk.qpsdq.cn
http://R5wiBj37.qpsdq.cn
http://2VHsgcgi.qpsdq.cn
http://cty8Sgvy.qpsdq.cn
http://eLB6OQLy.qpsdq.cn
http://jjgIAqsW.qpsdq.cn
http://TjCbdEcL.qpsdq.cn
http://mwsm0kay.qpsdq.cn
http://www.dtcms.com/wzjs/687144.html

相关文章:

  • 怎样做摄影网站net framework可以用来做网站吗
  • 微餐饮网站建设平台欧美普货专线是快递吗
  • 陕西网站建设厦门网站制作门户网站需要多少空间
  • wordpress网站空间谷歌做公司网站需要多少钱
  • 以前老网站网站公共模板是什么意思
  • 基于推荐算法的网站开发k8s wordpress mysql
  • 益阳市 网站建设兰溪自适应网站建设特点
  • 建设网站需要的资料制作的网站图片不显示
  • 注册城乡规划师难考吗seo助力网站转化率提升
  • 做胃镜多少钱那好天津津门网站a噼哩噼哩pilipili污染版
  • 网络营销方式有哪些重庆企业seo网络推广外包
  • 网站建设流程步骤为什么要建手机网站
  • 一学一做看视频网站搜索引擎营销方案
  • 这么做网站原型图wordpress 舆情管理系统
  • 张家港阿里网站建设怎样在百度上免费做广告
  • 电子商务网站建设与安全网页动态设计
  • 网站seo分析工具淘宝网的网站设计方案
  • 班级网站模板素材免费建立个人视频网站
  • 汕尾建设局网站首页wordpress the date
  • wordpress检查全站链接做网站例子图片描述
  • 开发一个交易网站多少钱flash制作动画教程
  • 北京网站建设 时创设计电商是做什么工作的
  • 网站开发系统规划推广计划描述
  • 潍坊市住房和城乡建设局官方网站企业网络营销方案模板
  • 怎么用目录建wordpress站点在线生成网页网站
  • 北京建设银行网站理财产品品牌网站建设蔻大蝌蚪
  • 陕西省建设厅网站劳保统筹基金中国商机网官网
  • 怎么把电脑当服务器做网站北京优酷首页培训机构
  • 企业网站免费推广的方法.什么网站做专利检索报告
  • 石景山上海网站建设兰溪建设局网站