• JENKINS 2.X实践指南
21年品牌 40万+商家 超1.5亿件商品

JENKINS 2.X实践指南

34 4.3折 79 九五品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者翟志军

出版社电子工业出版社

ISBN9787121360503

出版时间2019-04

版次1

装帧平装

开本16开

纸张胶版纸

页数252页

定价79元

上书时间2024-04-14

灵感飞驰

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
商品描述
基本信息
书名:JENKINS 2.X实践指南
定价:79.00元
作者:翟志军
出版社:电子工业出版社
出版日期:2019-04-01
ISBN:9787121360503
字数:
页码:252
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐
系统地介绍Jenkins 2.X的核心特性:pipeline as code及实践
内容提要
本书首先介绍笔者对软件工程生产力的独到见解。其次通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持续集成、持续交付中各个阶段,包括构建、测试、制品管理、部署等;在发现现有pipeline的步骤不能满足需求时,扩展Jenkins pipeline多种方式。本书7章介绍了Jenkins如何整合多个第三方系统,以实现ChatOps及自动化运维。为避免读者“不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline。
目录
目录
1 关于软件工程生产力 1
1.1 从另一个角度看“提高软件工程生产力” . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 从劳动力要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . . 2
1.1.2 从劳动对象要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . 2
1.1.3 从生产工具要素考虑提高软件工程生产力 . . . . . . . . . . . . . . . . . . . 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 创建个 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 简结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 post 部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 pipeline 支持的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 配置 pipeline 本身 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 在声明式 pipeline 中使用脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7 pipeline 内置基础步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7.1 文件目录相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7.2 制品相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.7.3 命令相关步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7.4 其他步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.7.5 小贴士 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 指令介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.3 K 环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 进行代码规范检查 . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3 各静态代码分析器之间的区别 . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.1 JUnit 单元测试报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.2 JaCoCo 实现代码覆盖率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2.3 代码覆盖率越高,软件的质量就越高吗 . . . . . . . . . . . . . . . . . . . . 58
5.3 性能测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.1 准备性能测试环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.2 运行 JMeter 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4 SonarQube:持续代码质量检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 测试报告:更美观的测试报告 . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.5.1 Allure 测试报告介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.5.2 集成 Allure、Maven、Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.6 当我们谈质量时,谈的是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.7 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6 触发 pipeline 执行 77
6.1 什么是触发条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2 时间触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.1 定时执行:cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 轮询代码仓库:pollSCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3 事件触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.1 由上游任务触发:upstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.2 GitLab 通知触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.3.3 在 pipeline 中实现 GitLab trigger . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.4 将构建状态信息推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.5 使用 Generic Webhook Trigger 插件实现触发 . . . . . . . . . . . . . . . . . . . . . . 87
6.5.1 从 Webhook 请求中提取参数值 . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.5.2 触发具体某个 Jenkins 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.5.3 根据请求参数值判断是否触发 Jenkins 项目执行 . . . . . . . . . . . . . . . . 91
6.5.4 控制打印内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.5.5 控制响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.6 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7 多分支构建 93
7.1 创建多分支 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2 根据分支部署到不同的环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3 when 指令的用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.4 GitLab trigger 对多分支 pipeline 的支持 . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.5 Generic Webhook Trigger 插件在多分支 pipeline 场景下的应用 . . . . . . . . . . . . 99
7.6 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8 参数化 pipeline 101
8.1 什么是参数化 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.2 使用 parameters 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.2.1 parameters 指令支持的参数类型 . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.2.2 多参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3 由另一个 pipeline 传参并触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.4 使用 Conditional BuildStep 插件处理复杂的判断逻辑 . . . . . . . . . . . . . . . . . 106
8.5 使用 input 步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.5.1 input 步骤的简单用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.5.2 input 步骤的复杂用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.6 小贴士 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.6.1 获取上游 pipeline 的信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.6.2 设置手动输入步骤超时后,pipeline 自动中止 . . . . . . . . . . . . . . . . . 111
8.7 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9 凭证管理 112
9.1 为什么要管理凭证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.2 凭证是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.3 创建凭证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.4 常用凭证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9.4.1 Secret text . . . . . . . . . . . . . . . . . . . . . . . . 

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP