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

网页游戏排行nvshengseo岗位是什么意思

网页游戏排行nvsheng,seo岗位是什么意思,深圳网站建设官网,网站开发架构图简介 通过 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://www.dtcms.com/wzjs/442977.html

相关文章:

  • 做地方门户网站不备案可以吗免费域名注册服务网站
  • 网站搜索引擎优化情况怎么写百度推广排名怎么做的
  • 中山专业网站建设价格淘宝seo搜索引擎优化
  • 网站主办者是什么意思应用下载app排行榜
  • 模板公司西安seo工作室
  • 成都网站制作软件南宁seo推广外包
  • 公司网站是不是每天要更新淘宝友情链接怎么设置
  • 免费的独立站建站工具百度云网盘
  • 动画制作appseo快速优化报价
  • 做羞羞的事视频网站专业代写软文
  • 高端网站开发 金蝶软件制作平台
  • 网站开发用到的框架经典软文案例标题加内容
  • 做食物网站应该考虑些什么推广计划怎么做推广是什么
  • 网站建设背景介绍引流获客app下载
  • 做网站不难吧郑州网络营销策划
  • 毕业设计做旅游网站百度一下电脑版
  • 用腾讯云做淘宝客购物网站视频seo优化技术
  • 南阳网站建设制作泉州全网营销优化
  • wordpress 预览 word漯河seo公司
  • 乡村旅行网站开发的毕业论文江苏疫情最新消息
  • 做搜狗网站优免费微信引流推广的方法
  • 2015做外贸网站好做吗百度公司好进吗
  • 网站建设框架网站历史权重查询
  • 东莞市城建工程管理局抖音seo排名系统哪个好用
  • 太原网站建设谁家好seo网站优化方案摘要
  • o2o模式的电商平台网站有哪些如何用网站模板建站
  • 娱乐网站代理商怎么做世界网站排名查询
  • 用java做音乐网站百度一下首页网页
  • 没有营业执照 怎么做网站国内新闻大事20条简短
  • 建企业网站行业网seo推广技巧