1、1Jenkins实践2主要是持续集成和Jenkins特性的简单介绍 如何创建一个简单的作业通过简单的操作示例,引导大家清楚在创建jenkins作业的时候留意哪些配置项高级构建配置介绍自动化测试,安全性,参数化构建&触发、多重结构构建,分布式构建总结一些需要注意的小问题02030104Jenkins实践目录目录CI & Jenkins简介Tips3好处:快速发现错误 & 防止分支大幅偏离主干目的:使产品快速迭代,同时保持高质量DesignDevelopTestRelease持续集成(CI)4Jenkins dekinz2004年由Sun公司启动,次年发布第一个版本2010年Oracle收购Sun
2、公司,引发了Hudson所有权的问题2011年社区更名项目为Jenkins,原开发人员基本都在Build great things at any scale“”5开源免费权限管理跨平台WEB可视化安装配置简单API丰富主从架构 & 分布式社区活跃插件丰富Jenkins是java语言编写的开源CI工具(易使用、易扩展、社区活跃)6系统设置系统设置管理构建中使用的工具路径,例如JDK、不同版本Maven及Gradle等。读取设置读取设置迁移Jenkins时使用,会加载系统和构建作业配置。负载统计负载统计跟踪服务器繁忙情况,并据此提醒是否需要扩容和增加节点机管理节点管理节点处理并行和分布式构建,可以
3、命令节点机器执行作业。如何创建一个简单的作业管理管理Jenkins7CI & Jenkins简介权限管理权限管理参考wiki:项目组权限管理权限矩阵权限矩阵项目组权限分配原则项目组权限分配原则严格控制Delete权限有经验用户可分配Create和Configure相关权限普通用户只分配Build和Read相关权限添加用户添加用户/组并分配权限组并分配权限查看本人所属组名:设置设置Job权限权限若勾选Block inheritance则会阻断全局权限继承8创建简单作业的步骤1.创建自由风格的Job2.填写代码仓库信息3.执行构建脚本4.归档构建结果构建一次的结果job构建的质量9如何创建一个简单
4、的作业设置定时构建设置定时构建所有值所有值* * * * * 每分钟构建一次M-N 范围范围* * * * 1-5 工作日每天构建一次/ 间隔间隔*/5 * * * * 每5分钟构建一次, 枚举枚举5,15 * * * * 每小时第5和15分钟构建一次构建触发器10如何创建一个简单的作业通知通知被动策略被动策略主动策略主动策略电子邮件rss订阅构建分发器桌面通知IM即时通信wifi噪音外设声明构建短信11如何创建一个简单的作业代码质量代码质量CheckstyleFindbugsPmdCoverage Complexity Scatter PlotTask ScannerSonar (将这些代码
5、质量量度集中到单一网站中的工具)参考wiki:在Job中配置Sonar12如何创建一个简单的作业代码变动触发构建代码变动触发构建配置构建触发器在Stash端关联Jenkins关于Git Hooks钩子程序会在Git执行命令特定的点触发自定义的行为git pushStashJenkinspost-commit.sh131.构建中合并gradle脚本,增加uploadArchives任务2.apply新的gradle脚本使其生效3.执行gradle的打包并上传命令如何创建一个简单的作业上传包到上传包到NexusNEXUS_GRADLE_UPLOAD /data/config/nexus/build
6、.gradle示例示例: hotel_HotelPlus_Assemble14高级构建配置参数化配置参数化配置Parameterized Build插件示例示例: 参数化参数化Git分支构建分支构建远程启动参数化构建作业:/job/buildWithParameters?branch=release/3.5ps.注意大小写敏感,并且值需要转义15高级构建配置参数化触发参数化触发build other projects不能参数化触发其他项目Parameterized Trigger插件在构建后操作中添加Trigger parameterized build on other projects16
7、New Job选择Build multi-configuration project高级构建配置多重结构构建多重结构构建运行所有可能的参数组合的参数化构建作业运行所有可能的参数组合的参数化构建作业Configuration Matrix配置从节点配置从节点配置配置SDK自定义配置自定义配置17高级构建配置分布式构建分布式构建slaveslaveslavemasteruser & adminhttp/httpsmaster:调度分发构建,监视从节点,纪录发布构建产物slave:实际执行构建作业管理管理Jenkins 管理节点管理节点 新建节点新建节点在特定在特定slave运行构建作业运行构建作业windows!windowslinux & mysqllinux & (beijing | shanghai)18Tips当然,你要注意的真不止这一点提示提示永远记得你身边的”?”日志日志所有配置都会留下证据丢弃构建丢弃构建记得减轻服务器的负荷19Q&A