跳转到内容

Jenkins构建历史

来自代码酷

Jenkins构建历史[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

Jenkins构建历史(Build History)是Jenkins持续集成系统中记录每次构建任务执行结果的日志集合。它提供了项目构建过程的完整追踪,包括构建状态(成功/失败)、持续时间、触发原因、变更记录及控制台输出等信息。该功能对调试问题、分析趋势和审计构建流程至关重要。

核心功能[编辑 | 编辑源代码]

Jenkins构建历史的主要功能包括:

  • 状态可视化:通过颜色标识构建结果(蓝色-成功、红色-失败、黄色-不稳定等)。
  • 时间线视图:展示构建执行的顺序和时间分布。
  • 关联数据:链接到构建日志、测试报告、制品存档等。
  • 历史保留策略:可配置保留的构建数量或存储周期。

pie title 构建历史数据类型占比 "构建状态" : 35 "控制台日志" : 25 "测试报告" : 20 "制品文件" : 15 "环境变量" : 5

访问构建历史[编辑 | 编辑源代码]

在Jenkins任务页面左侧导航栏点击Build History即可查看。每行记录包含以下信息:

  1. 构建编号(如#42)
  2. 构建状态图标
  3. 触发时间(如"3 minutes ago")
  4. 持续时间(如"1 min 23 sec")

示例:通过API获取构建历史[编辑 | 编辑源代码]

  
# 使用Jenkins API获取最近5次构建状态  
curl -s "http://JENKINS_URL/job/MY_JOB/api/json?tree=builds[number,result,id,timestamp]|5"

输出示例

  
{  
  "builds": [  
    {"number": 42, "result": "SUCCESS", "id": "42", "timestamp": 1712345678000},  
    {"number": 41, "result": "FAILURE", "id": "41", "timestamp": 1712340000000}  
  ]  
}

构建历史配置[编辑 | 编辑源代码]

管理员可通过以下路径配置保留策略: Manage Jenkins > Configure System > Build History 关键参数:

  • Days to keep builds:设置构建记录的保留天数
  • Max # of builds to keep:限制保留的构建数量

数学公式示例(计算存储占用): Storage=i=1n(logi+artifactsi)

实际应用案例[编辑 | 编辑源代码]

场景:分析间歇性构建失败[编辑 | 编辑源代码]

1. 在构建历史中筛选所有失败记录(#39、#36、#33) 2. 对比控制台日志发现共同错误模式:

  
ERROR: Connection refused (code 503) during dependency download

3. 结论:第三方仓库稳定性问题导致构建失败

场景:资源优化[编辑 | 编辑源代码]

通过构建历史的时间分布图发现:

  • 80%的构建集中在工作日9:00-11:00
  • 解决方案:配置定时构建(避开高峰期)

高级技巧[编辑 | 编辑源代码]

使用Groovy脚本清理历史[编辑 | 编辑源代码]

  
// 删除所有失败的构建  
Jenkins.instance.getItemByFullName("MY_JOB").builds.findAll {  
  it.result == Result.FAILURE  
}.each { it.delete() }

构建趋势分析[编辑 | 编辑源代码]

Jenkins内置Build Trend图表,可显示:

  • 成功率变化曲线
  • 平均构建时长趋势
  • 测试覆盖率关联分析

最佳实践[编辑 | 编辑源代码]

  • 定期归档重要构建的制品和日志
  • 为关键项目设置较长的历史保留周期
  • 结合插件(如Build History Metrics)增强分析能力

常见问题[编辑 | 编辑源代码]

Q:构建历史突然消失怎么办? A:检查磁盘空间和保留策略配置,可通过`$JENKINS_HOME/jobs/MY_JOB/builds`目录手动恢复

Q:如何导出构建历史数据? A:使用Jenkins API或插件(如ThinBackup)实现批量导出