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