Download presentation
Presentation is loading. Please wait.
1
Jenkins实践
2
01 02 03 04 目录 CI & Jenkins简介 如何创建一个简单的作业 高级构建配置 Tips Jenkins实践
介绍自动化测试,安全性,参数化构建&触发、多重结构构建,分布式构建 04 Tips 总结一些需要注意的小问题
3
持续集成(CI) Design Develop Test Release 好处:快速发现错误 & 防止分支大幅偏离主干
目的:使产品快速迭代,同时保持高质量
4
“ ” Build great things at any scale Jenkins [‘dʒeŋkinz]
2004年由Sun公司启动,次年发布第一个版本 2010年Oracle收购Sun公司,引发了Hudson所有权的问题 2011年社区更名项目为Jenkins,原开发人员基本都在
5
Jenkins是java语言编写的开源CI工具(易使用、易扩展、社区活跃)
开源免费 权限管理 跨平台 WEB可视化 插件丰富 API丰富 主从架构 & 分布式 社区活跃 安装配置简单 Jenkins是java语言编写的开源CI工具(易使用、易扩展、社区活跃)
6
管理Jenkins 系统设置 读取设置 负载统计 管理节点 如何创建一个简单的作业 管理构建中使用的工具路径,
例如JDK、不同版本Maven 及Gradle等。 迁移Jenkins时使用,会加载 系统和构建作业配置。 负载统计 管理节点 跟踪服务器繁忙情况,并据此提 醒是否需要扩容和增加节点机 处理并行和分布式构建,可以 命令节点机器执行作业。
7
若勾选Block inheritance…则会阻断全局权限继承
CI & Jenkins简介 权限管理 权限矩阵 添加用户/组并分配权限 查看本人所属组名: 设置Job权限 项目组权限分配原则 严格控制Delete权限 有经验用户可分配Create和Configure相关权限 普通用户只分配Build和Read相关权限 若勾选Block inheritance…则会阻断全局权限继承 参考wiki:《项目组权限管理》
8
创建简单作业的步骤 1.创建自由风格的Job 3.执行构建脚本 4.归档构建结果 构建一次的结果 job构建的质量 2.填写代码仓库信息
9
设置定时构建 构建触发器 如何创建一个简单的作业 特殊字符 含义 @yearly 0 0 1 1 * (每年运行一次) @annually
@monthly 0 0 1 * * (每月运行一次) @weekly 0 0 * * 0 (每周运行一次) @daily 0 0 * * *(每天运行一次) @midnight @hourly 0 * * * * (每小时运行一次) *所有值 * * * * * 每分钟构建一次 / 间隔 */5 * * * * 每5分钟构建一次 M-N 范围 * * * * 1-5 工作日每天构建一次 , 枚举 5,15 * * * * 每小时第5和15分钟构建一次
10
如何创建一个简单的作业 通知 被动策略 主动策略 电子邮件 桌面通知 rss订阅 IM即时通信 构建分发器 wifi噪音外设 声明构建 短信
11
参考wiki:《在Job中配置Sonar》
如何创建一个简单的作业 代码质量 Sonar (将这些代码质量量度集中到单一网站中的工具) 参考wiki:《在Job中配置Sonar》 Checkstyle Findbugs Pmd Coverage Complexity Scatter Plot Task Scanner
12
代码变动触发构建 配置构建触发器 在Stash端关联Jenkins 关于Git Hooks 如何创建一个简单的作业 git push
post-commit.sh Stash Jenkins
13
示例: hotel_HotelPlus_Assemble
如何创建一个简单的作业 上传包到Nexus 示例: hotel_HotelPlus_Assemble 1.构建中合并gradle脚本,增加uploadArchives任务 2.apply新的gradle脚本使其生效 3.执行gradle的打包并上传命令 NEXUS_GRADLE_UPLOAD /data/config/nexus/build.gradle
14
Parameterized Build插件
高级构建配置 参数化配置 示例: 参数化Git分支构建 Parameterized Build插件 远程启动参数化构建作业: <server-url>/job/<build-job>/buildWithParameters?branch=release/3.5 ps.注意大小写敏感,并且值需要转义
15
参数化触发 Parameterized Trigger插件 高级构建配置 build other projects不能参数化触发其他项目
在构建后操作中添加Trigger parameterized build on other projects
16
多重结构构建 运行所有可能的参数组合的参数化构建作业 高级构建配置 Configuration Matrix 配置从节点 配置SDK
New Job选择Build multi-configuration project Configuration Matrix 配置从节点 配置SDK 自定义配置
17
管理Jenkins > 管理节点 > 新建节点
高级构建配置 分布式构建 在特定slave运行构建作业 http/https user & admin master windows !windows linux && mysql linux && (beijing || shanghai) slave slave slave master:调度分发构建,监视从节点,纪录发布构建产物 slave:实际执行构建作业 管理Jenkins > 管理节点 > 新建节点
18
Tips 当然,你要注意的真不止这一点… 提示 日志 丢弃构建 永远记得你身边的”?” 所有配置都会留下证据 记得减轻服务器的负荷
19
Q&A
20
Thanks Eat better,Live better. 北京市朝阳区望京东路4号恒电大厦BC座
Block B&C, Hengdian Building, No.4 Wangjing East Rd,Chaoyang District, Beijing, , China
Similar presentations