失效链接处理 |
Jenkins 2.x实践指南 PDF 下蝲
本站整理下蝲Q?/strong>
版权归出版社和原作者所有,链接已删除,误买正?/b>
用户下蝲说明Q?/strong>
电子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:
http://product.dangdang.com/27852903.html
相关截图Q?br />
![]() 资料介: 本书首先介绍W者对软g工程生力的独到见解。其ơ通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持l集成、持l交付中各个阶段Q包括构建、测试、制品管理、部|等Q在发现现有pipeline的步骤不能满需求时Q扩展Jenkins pipeline多种方式。本书第17章介l了Jenkins如何整合多个W三方系l,以实现ChatOps及自动化q维。ؓ避免读?ldquo;不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline?/span> 资料目录Q?/strong> 目录 1 关于软g工程生?1 1.1 从另一个角度看“提高软g工程生?rdquo; . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 从劳动力要素考虑提高软g工程生?. . . . . . . . . . . . . . . . . . . . 2 1.1.2 从劳动对象要素考虑提高软g工程生?. . . . . . . . . . . . . . . . . . . 2 1.1.3 从生产工兯素考虑提高软g工程生?. . . . . . . . . . . . . . . . . . . 3 1.1.4 生力三要素的意?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Jenkins 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Jenkins ?DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 本章结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 pipeline 入门 6 2.1 pipeline 是什?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Jenkinsfile 又是什?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 pipeline 语法的选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 创徏W一?pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 从版本控制库拉取 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6 使用 Maven 构徏 Java 应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 本章结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 pipeline 语法讲解 16 3.1 必要?Groovy 知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 pipeline 的组?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.1 pipeline 最l构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.2 步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 post 部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 pipeline 支持的指?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5 配置 pipeline 本n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.6 在声明式 pipeline 中用脚?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.7 pipeline 内置基础步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7.1 文g目录相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7.2 制品相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.7.3 命o相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7.4 其他步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.7.5 脓(chung)?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.8 本章结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4 环境变量与构建工?37 4.1 环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.1 Jenkins 内置变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.2 自定?pipeline 环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.3 自定义全局环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2 构徏工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.1 构徏工具的选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.2 tools 指o介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.3 JDK 环境搭徏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.4 Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.5 Go 语言环境搭徏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2.6 Python 环境搭徏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 利用环境变量支持更多的构建工?. . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4 利用 tools 作用域实现多版本~译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.5 本章结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5 代码质量 50 5.1 静态代码分?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.1 代码规范?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.2 使用 PMD q行代码规范?. . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1.3 各静态代码分析器之间的区?. . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2 单元试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2.1 JUnit 单元试报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2.2 JaCoCo 实现代码覆盖?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2.3 代码覆盖率越高,软g的质量就高?. . . . . . . . . . . . . . . . . . . . 58 5.3 性能试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3.1 准备性能试环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3.2 q行 JMeter 试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.4 SonarQubeQ持l代码质量检?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.1 Maven ?SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.4.2 Jenkins ?SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.4.3 使用 SonarQube Scanner 实现代码扫描 . . . . . . . . . . . . . . . . . . . . . 67 5.4.4 SonarQube 集成 p3c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.4.5 分析报告推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.5 Allure 试报告Q更观的测试报?. . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.5.1 Allure 试报告介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.5.2 集成 Allure、Maven、Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.6 当我们谈质量Ӟ谈的是什?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.7 本章结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6 触发 pipeline 执行 77 6.1 什么是触发条g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2 旉触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.1 定时执行Qcron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.2 轮询代码仓库QpollSCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.3 事g触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.3.1 ׃怓Q务触发:upstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.3.2 GitLab 通知触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.3.3 ?pipeline 中实?GitLab trigger . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 构建状态信息推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.5 使用 Generic Webhook Trigger 插g实现触发 . . . . . . . . . . . . . . . . . . . . . . 87 6.5.1 ?Webhook h中提取参数?. . . . . . . . . . . . . . . . . . . . . . . . . 89 6.5.2 触发具体某个 Jenkins 目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.5.3 Ҏ(gu)h参数值判断是否触?Jenkins 目执行 . . . . . . . . . . . . . . . . 91 6.5.4 控制打印内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.5.5 控制响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.6 本章结 . . . . . |