JENKINS 2.X实践指南
本书特色
[
本书首先介绍笔者对软件工程生产力的独到见解。其次通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持续集成、持续交付中各个阶段,包括构建、测试、制品管理、部署等;在发现现有pipeline的步骤不能满足需求时,扩展Jenkins pipeline多种方式。本书第17章介绍了Jenkins如何整合多个第三方系统,以实现ChatOps及自动化运维。为避免读者“不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline。
]
内容简介
[
本书首先介绍笔者对软件工程生产力的独到见解。其次通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持续集成、持续交付中各个阶段,包括构建、测试、制品管理、部署等;在发现现有pipeline的步骤不能满足需求时,扩展Jenkins pipeline多种方式。本书7章介绍了Jenkins如何整合多个第三方系统,以实现ChatOps及自动化运维。为避免读者“不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline。
]
作者简介
[
程序员,https://showme.codes 博主。曾任开源中国产品经理。目前就职于美的公司,参与公司IoT系统、DevOps产品的设计与开发,帮助团队提高软件生产力。
]
目录
目录1 关于软件工程生产力 11.1 从另一个角度看“提高软件工程生产力” . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 从劳动力要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . . 21.1.2 从劳动对象要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . 21.1.3 从生产工具要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . 31.1.4 生产力三要素的意义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Jenkins 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Jenkins 与 DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 pipeline 入门 62.1 pipeline 是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Jenkinsfile 又是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 pipeline 语法的选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 创建**个 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5 从版本控制库拉取 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6 使用 Maven 构建 Java 应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.7 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 pipeline 语法讲解 163.1 必要的 Groovy 知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 pipeline 的组成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2.1 pipeline *简结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2.2 步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3 post 部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.4 pipeline 支持的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.5 配置 pipeline 本身 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.6 在声明式 pipeline 中使用脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.7 pipeline 内置基础步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.7.1 文件目录相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.7.2 制品相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.7.3 命令相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.7.4 其他步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.7.5 小贴士 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.8 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 环境变量与构建工具 374.1 环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.1 Jenkins 内置变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.2 自定义 pipeline 环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.1.3 自定义全局环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 构建工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.1 构建工具的选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.2 tools 指令介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.3 JDK 环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.4 Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.5 Go 语言环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.6 Python 环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.3 利用环境变量支持更多的构建工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.4 利用 tools 作用域实现多版本编译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.5 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 代码质量 505.1 静态代码分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.1.1 代码规范检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.1.2 使用 PMD 进行代码规范检查 . . . . . . . . . . . . . . . . . . . . . . . . . . 515.1.3 各静态代码分析器之间的区别 . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2 单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2.1 JUnit 单元测试报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2.2 JaCoCo 实现代码覆盖率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.2.3 代码覆盖率越高,软件的质量就越高吗 . . . . . . . . . . . . . . . . . . . . 585.3 性能测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.3.1 准备性能测试环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.3.2 运行 JMeter 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.4 SonarQube:持续代码质量检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.4.1 Maven 与 SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.4.2 Jenkins 与 SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.4.3 使用 SonarQube Scanner 实现代码扫描 . . . . . . . . . . . . . . . . . . . . . 675.4.4 SonarQube 集成 p3c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.4.5 将分析报告推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.5 Allure 测试报告:更美观的测试报告 . . . . . . . . . . . . . . . . . . . . . . . . . . 725.5.1 Allure 测试报告介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.5.2 集成 Allure、Maven、Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 735.6 当我们谈质量时,谈的是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.7 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 触发 pipeline 执行 776.1 什么是触发条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2 时间触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2.1 定时执行:cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2.2 轮询代码仓库:pollSCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3 事件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3.1 由上游任务触发:upstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3.2 GitLab 通知触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.3.3 在 pipeline 中实现 GitLab trigger . . . . . . . . . . . . . . . . . . . . . . . . . 846.4 将构建状态信息推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.5 使用 Generic Webhook Trigger 插件实现触发 . . . . . . . . . . . . . . . . . . . . . . 876.5.1 从 Webhook 请求中提取参数值 . . . . . . . . . . . . . . . . . . . . . . . . . 896.5.2 触发具体某个 Jenkins 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906.5.3 根据请求参数值判断是否触发 Jenkins 项目执行 . . . . . . . . . . . . . . . . 916.5.4 控制打印内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916.5.5 控制响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926.6 本章小结 . . . . .
封面
书名:JENKINS 2.X实践指南
作者:翟志军
页数:252
定价:¥79.0
出版社:电子工业出版社
出版日期:2019-04-01
ISBN:9787121360503
PDF电子书大小:54MB 高清扫描完整版
资源仅供学习参考,禁止用于商业用途,请在下载后24小时内删除!