持续集成与持续交付实战:用Jenkins、Travis CI和CircleCI构建和发布大规模高质量软件
(美)让-马塞尔·贝尔蒙特更新时间:2022-06-30 15:08:01
最新章节:15.6 问题封面
版权信息
版权
版权声明
内容提要
前言
本书的目标读者
本书涵盖的内容
充分利用本书
作者简介
审稿人简介
资源与支持
提交勘误
扫码关注本书
与我们联系
关于异步社区和异步图书
第1章 具有自动测试功能的CI/CD
1.1 业务场景
1.1.1 手动流程——讨论一种假设场景
1.1.2 雇员的困境
1.1.3 引入自动化
1.1.4 开发人员生产力
1.1.5 打破沟通障碍
1.1.6 创造合作环境
1.2 小结
1.3 问题
第2章 持续集成基础
2.1 技术要求
2.2 什么是持续集成
2.2.1 什么是软件构建
2.2.2 持续集成流程步骤概述
2.2.3 持续集成的价值
2.2.4 利用持续集成降低风险
2.2.5 源码签入时的软件构建
2.2.6 小型构建和大型构建故障
2.2.7 CI构建实践
2.3 小结
2.4 问题
第3章 持续交付基础
3.1 技术要求
3.2 软件交付问题
3.2.1 软件交付的含义
3.2.2 常见的版本发布反模式
3.2.3 如何进行软件发布
3.2.4 软件交付自动化的好处
3.3 配置管理
3.3.1 配置管理的含义
3.3.2 版本控制
3.3.3 依赖管理
3.3.4 软件配置管理
3.3.5 环境管理
3.4 部署流水线
3.4.1 什么是部署流水线
3.4.2 部署流水线实践
3.4.3 测试门
3.4.4 发布准备
3.5 部署脚本编写
3.5.1 构建工具概述
3.5.2 部署脚本编写概念
3.5.3 部署脚本编写最佳实践
3.6 部署生态系统
3.6.1 基础设施工具
3.6.2 云提供商和工具
3.7 小结
3.8 问题
第4章 CI/CD的业务价值
4.1 技术要求
4.2 沟通问题
4.2.1 需求传达不当
4.2.2 缺乏适当的文档
4.2.3 时区差异
4.2.4 缺乏信任和相互尊重
4.2.5 文化差异和语言障碍
4.2.6 反馈周期长
4.3 与团队成员沟通痛点
4.3.1 等待需求信息
4.3.2 部署流水线中未记录的步骤
4.3.3 王国钥匙的持有者过多
4.3.4 沟通渠道过多
4.3.5 疼痛驱动开发
4.4 不同团队间分担责任
4.4.1 轮换团队成员
4.4.2 寻求有关开发实践的反馈
4.4.3 建立跨职能团队
4.5 了解利益相关者
4.5.1 项目经理
4.5.2 行政领导团队
4.5.3 终端用户
4.6 证明CI/CD的重要性
4.6.1 指标和报告
4.6.2 帮助领导者了解自动化的重要性
4.7 获得利益相关者对CI/CD的批准
4.7.1 开始一个臭鼬工厂项目
4.7.2 在本地计算机上启动CI/CD
4.7.3 公司内部展示
4.7.4 午餐交流会
4.8 小结
4.9 问题
第5章 Jenkins的安装与基础
5.1 技术要求
5.2 在Windows上安装
5.2.1 安装Jenkins的先决条件
5.2.2 Windows安装程序
5.2.3 在Windows上安装Jenkins
5.2.4 在Windows上运行安装程序
5.2.5 在Windows上用命令提示符启动和停止Jenkins
5.3 在Linux上安装
5.3.1 在Ubuntu上安装Jenkins
5.3.2 在Ubuntu上启动Jenkins服务
5.3.3 打开网络流量防火墙
5.3.4 首次登录时解锁Jenkins
5.4 在macOS上安装
5.4.1 下载Jenkins程序包
5.4.2 首次登录时解锁Jenkins
5.4.3 通过Homebrew安装Jenkins
5.5 在本地运行Jenkins
5.5.1 创建一个新项目
5.5.2 控制台输出
5.6 管理Jenkins
5.6.1 配置环境变量及工具
5.6.2 配置作业以轮询GitHub版本控制存储库
5.7 小结
5.8 问题
第6章 编写自由风格脚本
6.1 技术要求
6.2 创建简单的自由风格脚本
6.2.1 Jenkins仪表盘指南
6.2.2 添加新的构建作业项
6.2.3 构建配置选项
6.3 配置自由风格作业
6.3.1 General标签页
6.3.2 Source Code Management标签页
6.3.3 Build Triggers标签页
6.3.4 Build Environment标签页
6.3.5 Build标签页
6.3.6 Post-build Actions标签页
6.4 添加环境变量
6.4.1 全局环境变量的配置
6.4.2 EnvInject插件
6.5 用自由风格作业调试问题
6.5.1 历史构建总览
6.5.2 用自由风格脚本调试问题
6.6 小结
6.7 问题
第7章 开发插件
7.1 技术要求
7.2 Jenkins插件的说明
7.2.1 插件为什么有用
7.2.2 Jenkins插件文档
7.2.3 在Jenkins中安装插件
7.3 构建简单的Jenkins插件
7.3.1 安装Java
7.3.2 Maven安装指南
7.4 Jenkins插件的开发
7.4.1 Maven设置文件
7.4.2 HelloWorld Jenkins插件
7.4.3 目录结构说明
7.4.4 Jenkins插件源码说明
7.4.5 构建Jenkins插件
7.4.6 安装Jenkins插件
7.5 Jenkins插件生态系统
可用插件清单
7.6 小结
7.7 问题
第8章 使用Jenkins构建流水线
8.1 技术要求
8.2 Jenkins 2.0
8.2.1 为什么要使用Jenkins 2.0
8.2.2 在现有软件上安装Blue Ocean插件
8.2.3 通过Jenkins Docker镜像来安装Blue Ocean插件
8.2.4 查看Blue Ocean界面
8.3 Jenkins流水线
8.3.1 创建Jenkins流水线
8.3.2 用流水线编辑器创建流水线
8.4 Jenkins Blue Ocean操作说明
8.4.1 流水线视图
8.4.2 流水线细节视图
8.4.3 流水线构建视图
8.4.4 流水线阶段视图
8.4.5 Jenkins流水线中的其他视图
8.5 流水线语法
8.5.1 流水线编辑器
8.5.2 流水线语法文档
8.6 小结
8.7 问题
第9章 Travis CI的安装与基础
9.1 技术要求
9.2 Travis CI的介绍
比较Travis CI和Jenkins
9.3 使用Travis CI的先决条件
9.3.1 创建GitHub账号
9.3.2 创建Travis CI账号
9.3.3 为新GitHub账号添加SSH密钥
9.4 添加简单的Travis YAML配置脚本
9.4.1 Travis YML脚本内容
9.4.2 为Travis CI账号添加GitHub存储库
9.5 Travis CI脚本各部分解析
9.5.1 选择编程语言
9.5.2 选择基础设施
9.5.3 定制构建
9.6 小结
9.7 问题
第10章 Travis CI命令行命令及自动化
10.1 技术要求
10.2 Travis CLI的安装
10.2.1 在Windows上安装
10.2.2 在Linux上安装
10.2.3 在macOS上安装
10.3 Travis CLI命令
10.3.1 非API命令
10.3.2 API命令
10.3.3 存储库命令
10.3.4 Travis Pro和Travis Enterprise版本的Travis CI选项
10.4 小结
10.5 问题
第11章 Travis CI UI日志记录与调试
11.1 技术要求
11.2 Travis Web客户端概述
11.2.1 主控仪表盘概述
11.2.2 作业日志概述
11.3 用Docker在本地调试构建
11.4 在调试模式下运行构建
11.4.1 从配置页面获取API令牌
11.4.2 从构建日志获取作业ID
11.4.3 从视图配置按钮的链接中获取作业ID
11.4.4 通过直达/build端点的API请求获取作业ID
11.4.5 在调试模式下调用API来开始构建作业
11.4.6 在调试模式下启用SSH会话
11.4.7 Travis调试模式中的便捷Bash函数
11.4.8 tmate shell会话操作
11.5 Travis Web UI日志
Travis CI用来保护特定的环境变量的步骤
11.6 Travis CI部署概述与调试
11.6.1 支持Travis CI的服务提供商
11.6.2 在Travis CI中设置Heroku
11.6.3 调试Travis YML脚本中的错误
11.7 小结
11.8 问题
第12章 CircleCI的安装与基础
12.1 技术要求
12.2 CircleCI简介
12.3 比较CircleCI和Jenkins
12.4 使用CircleCI的先决条件
12.4.1 创建GitHub账号
12.4.2 创建Bitbucket账号
12.4.3 创建CircleCI账号
12.5 在GitHub中设置CircleCI
12.6 在Bitbucket中设置CircleCI
用CircleCI构建在Bitbucket中创建Java项目
12.7 CircleCI配置概述
12.7.1 CircleCI配置概念概述
12.7.2 向新存储库中添加源文件
12.7.3 新存储库的CircleCI构建作业
12.8 小结
12.9 问题
第13章 CircleCI命令行命令与自动化
13.1 技术要求
13.2 CircleCI CLI的安装
13.2.1 在macOS / Linux上安装CircleCI CLI
13.2.2 通过GitHub安装CircleCI CLI的每夜构建版本
13.3 CircleCI CLI命令
13.3.1 version命令
13.3.2 help命令
13.3.3 config命令
13.3.4 build命令
13.3.5 step命令
13.3.6 configure命令
13.3.7 tests命令
13.4 在CircleCI中使用工作流
13.4.1 CircleCI Web UI中的实际工作流
13.4.2 顺序工作流示例
13.5 使用CircleCI API
13.5.1 测试CircleCI API连接
13.5.2 用CircleCI API获取单个Git存储库的构建摘要
13.5.3 用jq实用程序计算CircleCI构建的某些指标
13.6 小结
13.7 问题
第14章 CircleCI UI日志记录与调试
14.1 技术要求
14.2 作业日志概述
14.2.1 用默认构建作业运行作业中的步骤
14.2.2 用工作流运行作业中的步骤
14.2.3 用CircleCI API查找最新的构建URL
14.3 在CircleCI中调试慢速构建
14.4 日志记录和故障排除技术
用本地YML配置脚本运行构建以排除故障
14.5 小结
14.6 问题
第15章 最佳实践
15.1 技术要求
15.2 CI/CD中不同类型测试的最佳实践
15.2.1 冒烟测试
15.2.2 单元测试
15.2.3 集成测试
15.2.4 系统测试
15.2.5 验收测试
15.2.6 在CI/CD流水线中运行不同类型测试的最佳实践
15.3 密码和机密存储中的最佳实践
15.3.1 Vault的安装
15.3.2 机密管理的最佳实践概述
15.4 部署中的最佳实践
15.4.1 创建部署检查清单
15.4.2 自动化发布
15.4.3 部署脚本示例
15.4.4 部署脚本的最佳实践
15.5 小结
15.6 问题
更新时间:2022-06-30 15:08:01