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

第4章 用户界面与基本操作

4.1 Jenkins Web界面概览

主界面布局

顶部导航栏:

┌─────────────────────────────────────────────────────────────┐
│ Jenkins Logo │ 搜索框 │ 用户菜单 │ 管理Jenkins │ 帮助 │
└─────────────────────────────────────────────────────────────┘

左侧导航面板:

┌─────────────────┐
│ 新建任务        │
│ 用户            │
│ 构建历史        │
│ 管理Jenkins     │
│ 我的视图        │
│ Lockable Resources │
│ New View        │
└─────────────────┘

主内容区域:

┌─────────────────────────────────────────────────────────────┐
│ 欢迎信息 / 项目列表 / 构建队列                              │
│                                                             │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 项目状态        │ │ 构建历史        │ │ 系统信息        │ │
│ │                 │ │                 │ │                 │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘

主要功能区域

1. 项目列表视图

  • 项目名称和状态
  • 最后构建结果
  • 构建历史趋势
  • 快速操作按钮

2. 构建队列

  • 等待执行的构建
  • 正在执行的构建
  • 构建进度显示

3. 构建执行器状态

  • 节点使用情况
  • 执行器负载
  • 空闲/忙碌状态

4.2 导航和搜索

全局搜索

搜索功能:

搜索类型:
- 项目名称搜索
- 构建编号搜索
- 用户搜索
- 节点搜索
- 插件搜索

搜索技巧:

# 精确匹配
"project-name"# 通配符搜索
project-*
*-test# 构建编号搜索
#123
project-name #123# 用户搜索
user:john.doe# 节点搜索
node:linux-agent

快捷键:

/ 或 Ctrl+K    # 快速搜索
Ctrl+Enter     # 在新标签页打开
Esc            # 关闭搜索

面包屑导航

导航路径示例:

Jenkins > 项目名称 > 构建 #123 > 控制台输出
Jenkins > 管理Jenkins > 系统配置
Jenkins > 用户 > john.doe > 配置

快速导航:

// URL模式
http://jenkins-server:8080/job/project-name/
http://jenkins-server:8080/job/project-name/123/
http://jenkins-server:8080/job/project-name/123/console
http://jenkins-server:8080/manage/

4.3 项目管理

创建新项目

创建步骤:

  1. 点击"新建任务"
  2. 输入项目名称
  3. 选择项目类型
  4. 点击"确定"

项目命名规范:

推荐格式:
- 应用名-环境-类型:myapp-prod-deploy
- 团队-应用-功能:frontend-webapp-build
- 服务-版本-操作:userservice-v2-test避免使用:
- 特殊字符:!@#$%^&*()
- 空格:使用连字符或下划线
- 中文字符:使用英文

项目类型选择:

自由风格项目:
✓ 简单构建任务
✓ 传统应用
✓ 快速原型Pipeline项目:
✓ 复杂工作流
✓ 代码化配置
✓ 现代应用多配置项目:
✓ 矩阵构建
✓ 跨平台测试
✓ 参数化构建文件夹:
✓ 项目组织
✓ 权限管理
✓ 批量操作

项目配置

基本配置选项:

1. 常规设置

项目名称:不可修改
描述:项目说明文档
丢弃旧的构建:保留策略
参数化构建:构建参数
禁用项目:暂停构建
并发构建:允许同时构建

2. 源码管理

// Git配置示例
scm {git {remote {url('https://github.com/company/myapp.git')credentials('github-credentials')}branch('*/main')extensions {cleanBeforeCheckout()cloneOptions {shallow(true)depth(1)}}}
}

3. 构建触发器

触发远程构建:API触发
GitHub hook trigger:Webhook触发
定时构建:Cron表达式
轮询SCM:定期检查代码
其他项目构建后触发:依赖构建

4. 构建环境

删除工作空间:清理环境
使用秘密文本或文件:凭据注入
添加时间戳:构建时间记录
Set Build Name:自定义构建名称

项目复制和模板

复制现有项目:

步骤:
1. 新建任务
2. 输入新项目名称
3. 选择"复制现有的任务"
4. 输入源项目名称
5. 点击"确定"
6. 修改必要的配置

项目模板最佳实践:

// 创建项目模板
pipeline {agent anyparameters {string(name: 'APP_NAME', description: 'Application name')string(name: 'GIT_REPO', description: 'Git repository URL')choice(name: 'ENVIRONMENT', choices: ['dev', 'test', 'prod'])}environment {APP_NAME = "${params.APP_NAME}"BUILD_VERSION = "${env.BUILD_NUMBER}"}stages {stage('Checkout') {steps {git url: "${params.GIT_REPO}", branch: 'main'}}stage('Build') {steps {echo "Building ${APP_NAME}..."// 构建步骤模板}}stage('Test') {steps {echo "Testing ${APP_NAME}..."// 测试步骤模板}}stage('Deploy') {steps {echo "Deploying ${APP_NAME} to ${params.ENVIRONMENT}..."// 部署步骤模板}}}post {always {cleanWs()}}
}

4.4 构建操作

手动构建

立即构建:

操作步骤:
1. 进入项目页面
2. 点击"立即构建"
3. 观察构建进度
4. 查看构建结果

参数化构建:

操作步骤:
1. 点击"Build with Parameters"
2. 填写构建参数
3. 点击"开始构建"
4. 监控构建过程

构建参数示例:

<!-- 参数化构建界面 -->
<form><label>分支名称:</label><input type="text" name="BRANCH_NAME" value="main"><label>部署环境:</label><select name="ENVIRONMENT"><option value="dev">开发环境</option><option value="test">测试环境</option><option value="prod">生产环境</option></select><label>跳过测试:</label><input type="checkbox" name="SKIP_TESTS"><button type="submit">开始构建</button>
</form>

构建监控

构建状态指示器:

🔵 蓝色球:构建成功
🔴 红色球:构建失败
🟡 黄色球:构建不稳定
⚫ 灰色球:构建中止
⚪ 白色球:未构建
🔄 动画球:正在构建

构建进度监控:

进度条显示:
- 当前阶段
- 完成百分比
- 预计剩余时间
- 执行节点信息

实时日志查看:

# 控制台输出示例
Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/myapp-build
The recommended git tool is: NONE
[myapp-build] $ git rev-parse --resolve-git-dir /var/lib/jenkins/workspace/myapp-build/.git
[myapp-build] $ git config remote.origin.url https://github.com/company/myapp.git
[myapp-build] $ git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
[myapp-build] $ git rev-parse refs/remotes/origin/main^{commit}
[myapp-build] $ git rev-parse refs/remotes/origin/origin/main^{commit}
[myapp-build] $ git rev-parse origin/main^{commit}
[myapp-build] $ git rev-parse refs/remotes/origin/main^{commit}
Checking out Revision 1a2b3c4d5e6f7g8h9i0j (refs/remotes/origin/main)
[myapp-build] $ git config core.sparsecheckout
[myapp-build] $ git checkout -f 1a2b3c4d5e6f7g8h9i0j
Commit message: "Fix: Update dependencies"
[myapp-build] $ /usr/bin/mvn clean compile
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------< com.company:myapp >-------------------------
[INFO] Building MyApp 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------

构建控制

停止构建:

操作方式:
1. 点击构建进度条旁的"X"按钮
2. 在构建页面点击"停止构建"
3. 使用CLI命令停止

CLI停止构建:

# 停止特定构建
java -jar jenkins-cli.jar -s http://jenkins-server:8080/ \stop-builds job-name 123# 停止所有构建
java -jar jenkins-cli.jar -s http://jenkins-server:8080/ \cancel-quiet-down

批量操作:

// 批量停止构建脚本
Jenkins.instance.getAllItems(Job.class).each { job ->job.getBuilds().each { build ->if (build.isBuilding()) {println "Stopping build: ${job.name} #${build.number}"build.doStop()}}
}

4.5 构建历史和结果

构建历史查看

构建历史界面:

┌─────────────────────────────────────────────────────────────┐
│ 构建历史                                                    │
├─────────────────────────────────────────────────────────────┤
│ #123 🔵 2024-01-15 14:30:25  (2m 15s)  [main] Fix bugs    │
│ #122 🔴 2024-01-15 14:25:10  (1m 45s)  [main] Add feature │
│ #121 🔵 2024-01-15 14:20:05  (2m 30s)  [dev]  Update deps │
│ #120 🟡 2024-01-15 14:15:00  (3m 10s)  [main] Refactor    │
└─────────────────────────────────────────────────────────────┘

构建信息详情:

构建编号:#123
状态:成功
开始时间:2024-01-15 14:30:25
持续时间:2分15秒
触发原因:由用户admin启动
Git提交:1a2b3c4d (Fix: Update dependencies)
执行节点:linux-agent-01

构建结果分析

测试结果报告:

<!-- 测试结果摘要 -->
<div class="test-results"><h3>测试结果</h3><table><tr><td>总测试数:</td><td>150</td></tr><tr><td>通过:</td><td style="color: green;">145</td></tr><tr><td>失败:</td><td style="color: red;">3</td></tr><tr><td>跳过:</td><td style="color: orange;">2</td></tr><tr><td>成功率:</td><td>96.7%</td></tr></table>
</div>

代码覆盖率报告:

<!-- 覆盖率报告 -->
<div class="coverage-report"><h3>代码覆盖率</h3><div class="coverage-bar"><div class="covered" style="width: 85%;">85%</div></div><table><tr><td>行覆盖率:</td><td>85.2%</td></tr><tr><td>分支覆盖率:</td><td>78.9%</td></tr><tr><td>方法覆盖率:</td><td>92.1%</td></tr><tr><td>类覆盖率:</td><td>95.5%</td></tr></table>
</div>

构建产物管理

产物归档:

归档文件列表:
├── target/
│   ├── myapp-1.0.0.jar (2.5 MB)
│   ├── myapp-1.0.0-sources.jar (1.2 MB)
│   └── myapp-1.0.0-javadoc.jar (3.1 MB)
├── docs/
│   ├── api-documentation.html
│   └── user-manual.pdf
└── reports/├── test-results.xml└── coverage-report.html

产物下载:

# 直接下载链接
http://jenkins-server:8080/job/myapp-build/123/artifact/target/myapp-1.0.0.jar# 批量下载
wget -r -np -nH --cut-dirs=4 \http://jenkins-server:8080/job/myapp-build/123/artifact/# 使用API下载
curl -O http://jenkins-server:8080/job/myapp-build/123/artifact/target/myapp-1.0.0.jar

4.6 视图管理

创建自定义视图

视图类型:

列表视图:
- 项目列表显示
- 可过滤和排序
- 支持正则表达式我的视图:
- 个人项目视图
- 只显示相关项目
- 个性化配置Build Pipeline视图:
- 流水线可视化
- 依赖关系展示
- 构建流程监控仪表板视图:
- 多维度信息展示
- 图表和统计
- 实时状态监控

创建列表视图:

步骤:
1. 点击"新建视图"
2. 输入视图名称
3. 选择"列表视图"
4. 配置过滤条件
5. 选择显示列
6. 保存配置

视图配置示例:

视图名称:Frontend Projects
描述:前端相关项目项目过滤:
- 使用正则表达式:frontend-.*
- 包含项目:frontend-webapp, frontend-mobile
- 排除项目:frontend-legacy显示列:
✓ 状态
✓ 天气
✓ 名称
✓ 最后成功
✓ 最后失败
✓ 最后持续时间
✓ 构建按钮

仪表板配置

仪表板插件:

Dashboard View Plugin:
- 项目状态概览
- 构建趋势图表
- 测试结果统计Build Monitor Plugin:
- 大屏幕显示
- 实时状态更新
- 团队可视化RadiatorView Plugin:
- 简洁的状态显示
- 颜色编码
- 快速识别问题

仪表板配置:

// 仪表板配置示例
dashboard {name "Team Dashboard"description "Development team overview"portlets {buildStatistics {displayName "Build Statistics"showOnlyFailedJobs false}testResultTrend {displayName "Test Trends"graphWidth 400graphHeight 200}buildQueue {displayName "Build Queue"showOnlyBlockedJobs false}}
}

4.7 用户管理

用户账户管理

用户信息查看:

用户详情页面:
- 用户名和全名
- 邮箱地址
- 最后登录时间
- 权限列表
- 个人配置

个人配置选项:

时区设置:
- 自动检测
- 手动选择时区
- 显示格式邮件通知:
- 构建失败通知
- 构建恢复通知
- 个人构建通知界面设置:
- 主题选择
- 语言设置
- 页面刷新间隔API Token:
- 生成新令牌
- 撤销现有令牌
- 令牌权限范围

API Token管理

生成API Token:

步骤:
1. 进入用户配置页面
2. 找到"API Token"部分
3. 点击"添加新Token"
4. 输入Token名称
5. 点击"生成"
6. 复制并保存Token

使用API Token:

# 使用Token进行API调用
curl -X POST \-H "Authorization: Bearer your-api-token" \http://jenkins-server:8080/job/myapp-build/build# 使用用户名和Token
curl -X POST \--user username:api-token \http://jenkins-server:8080/job/myapp-build/build# 在脚本中使用
JENKINS_USER="john.doe"
JENKINS_TOKEN="your-api-token"
JENKINS_URL="http://jenkins-server:8080"curl -X POST \--user "${JENKINS_USER}:${JENKINS_TOKEN}" \"${JENKINS_URL}/job/myapp-build/build"

4.8 系统管理

系统信息查看

系统信息页面:

访问路径:Manage Jenkins → System Information显示内容:
- Jenkins版本信息
- Java运行时环境
- 系统属性
- 环境变量
- 插件版本
- 节点信息

系统日志查看:

访问路径:Manage Jenkins → System Log日志级别:
- SEVERE:严重错误
- WARNING:警告信息
- INFO:一般信息
- CONFIG:配置信息
- FINE:详细信息

系统监控:

// 系统监控脚本
import jenkins.model.Jenkins
import hudson.node_monitors.*// 获取系统信息
def jenkins = Jenkins.instance
def computer = jenkins.getComputer("")// 内存使用情况
def memoryMonitor = new MemoryMonitor()
def memoryUsage = memoryMonitor.monitor(computer)
println "Memory Usage: ${memoryUsage}"// 磁盘空间
def diskMonitor = new DiskSpaceMonitor()
def diskSpace = diskMonitor.monitor(computer)
println "Disk Space: ${diskSpace}"// 响应时间
def responseMonitor = new ResponseTimeMonitor()
def responseTime = responseMonitor.monitor(computer)
println "Response Time: ${responseTime}ms"

插件管理

插件安装:

步骤:
1. 进入"Manage Jenkins" → "Manage Plugins"
2. 选择"Available"标签
3. 搜索所需插件
4. 勾选插件复选框
5. 点击"Install without restart"或"Download now and install after restart"

插件更新:

步骤:
1. 进入"Manage Jenkins" → "Manage Plugins"
2. 选择"Updates"标签
3. 查看可更新插件列表
4. 选择要更新的插件
5. 点击"Download now and install after restart"

插件管理最佳实践:

安全原则:
✓ 只安装必需的插件
✓ 定期更新插件
✓ 关注安全公告
✓ 测试插件兼容性性能考虑:
✓ 避免安装过多插件
✓ 监控插件性能影响
✓ 及时清理无用插件
✓ 使用轻量级替代方案

4.9 快捷操作和技巧

键盘快捷键

全局快捷键:

/           # 快速搜索
Ctrl+K      # 快速搜索(替代)
g + h       # 回到首页
g + m       # 管理Jenkins
g + p       # 用户配置
g + b       # 构建历史
g + c       # 控制台输出

页面快捷键:

项目页面:
Enter       # 立即构建
Ctrl+Enter  # 在新标签页构建构建页面:
R           # 重新构建
S           # 停止构建
C           # 查看控制台

URL技巧

直接访问URL:

# 项目页面
/job/project-name/# 构建页面
/job/project-name/123/# 控制台输出
/job/project-name/123/console# 配置页面
/job/project-name/configure# API端点
/job/project-name/api/json
/job/project-name/123/api/json

API快速操作:

# 触发构建
curl -X POST http://jenkins-server:8080/job/project-name/build# 获取项目信息
curl http://jenkins-server:8080/job/project-name/api/json# 获取构建状态
curl http://jenkins-server:8080/job/project-name/123/api/json# 获取控制台输出
curl http://jenkins-server:8080/job/project-name/123/consoleText

批量操作

批量项目操作脚本:

// 批量启用/禁用项目
Jenkins.instance.getAllItems(Job.class).each { job ->if (job.name.startsWith("legacy-")) {job.disable()println "Disabled: ${job.name}"}
}// 批量删除旧构建
Jenkins.instance.getAllItems(Job.class).each { job ->def builds = job.getBuilds()builds.each { build ->if (build.getTimeInMillis() < System.currentTimeMillis() - 30*24*60*60*1000) {build.delete()println "Deleted build: ${job.name} #${build.number}"}}
}

4.10 本章小结

本章详细介绍了Jenkins Web界面的使用和基本操作:

界面掌握:

  1. 导航系统:熟练使用搜索和导航功能
  2. 项目管理:创建、配置和组织项目
  3. 构建操作:执行、监控和控制构建
  4. 结果分析:查看历史和分析结果
  5. 视图管理:自定义界面和仪表板

操作技能:

  1. 高效导航:使用快捷键和URL技巧
  2. 批量操作:脚本化管理任务
  3. 个性化配置:用户设置和API管理
  4. 系统监控:健康状态和性能监控

最佳实践:

  • 合理组织项目结构
  • 定制个人工作视图
  • 使用API提高效率
  • 定期维护和清理
  • 关注系统健康状态

下一章预告:
下一章将深入介绍构建任务管理,包括不同类型任务的创建、配置和优化策略。

4.11 练习与思考

实践练习

  1. 界面熟悉

    • 创建个人仪表板视图
    • 配置个人偏好设置
    • 练习快捷键操作
  2. 项目管理

    • 创建不同类型的项目
    • 设置项目模板
    • 配置项目权限
  3. 构建操作

    • 执行参数化构建
    • 监控构建进度
    • 分析构建结果
  4. 高级操作

    • 编写批量管理脚本
    • 配置API访问
    • 设置系统监控

思考题

  1. 如何设计一个既直观又高效的Jenkins界面布局?
  2. 在大型团队中,如何组织和管理众多Jenkins项目?
  3. 如何平衡界面的功能性和简洁性?
  4. 移动端访问Jenkins有哪些挑战和解决方案?
  5. 如何通过界面设计提高团队的CI/CD效率?

文章转载自:

http://Mgk0fvRv.ymqrc.cn
http://2nXK5Ilq.ymqrc.cn
http://fuh7i5pg.ymqrc.cn
http://NPGNWQjD.ymqrc.cn
http://TlBDN4r7.ymqrc.cn
http://2AOPvZpP.ymqrc.cn
http://DvXq6LJT.ymqrc.cn
http://gsgXjB43.ymqrc.cn
http://tzh5iqIq.ymqrc.cn
http://HEIZuuLC.ymqrc.cn
http://Thwzbaaz.ymqrc.cn
http://Mqlx5Z68.ymqrc.cn
http://eOSmXttq.ymqrc.cn
http://t87nyoi4.ymqrc.cn
http://dEJE9HYd.ymqrc.cn
http://ugU8Asm0.ymqrc.cn
http://ZObJYpim.ymqrc.cn
http://DEMzB4ku.ymqrc.cn
http://k2MUjktF.ymqrc.cn
http://CafekfPf.ymqrc.cn
http://jiSluAAd.ymqrc.cn
http://7qjqTajE.ymqrc.cn
http://Lo6cau8C.ymqrc.cn
http://79HjX0bI.ymqrc.cn
http://R0I1HRRN.ymqrc.cn
http://sI53hPmV.ymqrc.cn
http://ccMxxHbq.ymqrc.cn
http://xQULNqJB.ymqrc.cn
http://y9xy3n4k.ymqrc.cn
http://6kZfkgDv.ymqrc.cn
http://www.dtcms.com/a/366891.html

相关文章:

  • 从课前到课后,地理创新实验室赋能教学新范式
  • 焊接自动化测试平台图像处理分析-模型训练推理
  • Kafka面试精讲 Day 7:消息序列化与压缩策略
  • 【图像处理基石】如何在频域对图像进行处理和增强?
  • 探索 PostgreSQL 和 MySQL 之间的主要差异和相似之处,找到满足您项目需求的最佳数据库解决方案。
  • Python爬虫常用框架
  • HTTP与HTTPS杂谈-HTTPS防御了什么
  • Caffeine 双端队列优化揭秘:如何优雅维护访问和写入顺序
  • 02-ideal2025 Ultimate版安装教程
  • 代码随想录刷题Day49
  • 随时随地写代码:Jupyter Notebook+cpolar让远程开发像在本地一样流畅
  • 51单片机:中断、定时器与PWM整合手册
  • spring.profiles.active配置的作用
  • 设计模式六大原则2-里氏替换原则
  • 短视频运营为什么需要代理 IP
  • JS函数进阶
  • 【可信数据空间-连接器状态监控】
  • 【面试题】如何构造排序模型训练数据?解决正负样本不均?
  • matlab实现希尔伯特变换(HHT)
  • 批量获取1688商品详情图及API接口调用实操指南
  • 【Kubernetes】知识点4
  • 卫生间异味来源难察觉?这款传感器为你精准探测并预警
  • 从设计到落地:校园图书馆系统的面向对象实现全流程
  • 多个docker compose启动的容器之间通信实现
  • Oracle 数据库如何查询列
  • (论文速读)Navigation World Models: 让机器人像人类一样想象和规划导航路径
  • 子串:最小覆盖子串
  • 深度学习中的学习率优化策略详解
  • UE5 制作游戏框架的部分经验积累(持续更新)
  • Kubernetes知识点(三)