1. 概述
Jenkins 是业界领先的自动化服务器,广泛用于通用任务的自动化,例如执行夜间构建、自动化测试套件、CI/CD 流水线、GitOps 任务等。
Jenkins 受欢迎的主要原因之一是其可扩展性。它通过插件机制扩展功能,提供了近乎无限的扩展可能。开源社区为 Jenkins 开发并维护了大量插件,其中就包括 AnsiColor 插件。该插件允许我们通过 ANSI 转义码 自定义控制台输出样式。
在本文中,我们将讨论 如何在 Jenkins 中安装、配置并使用 AnsiColor 插件,帮助你在日志输出中使用彩色文本,提高可读性和调试效率。
2. 安装 AnsiColor 插件
要安装 AnsiColor 插件,请按照以下步骤操作:
- 进入 Jenkins 主界面,点击 Dashboard -> Manage Jenkins -> Plugins。
- 切换到 Available Plugins 标签页。
- 使用搜索框查找
AnsiColor
。 - 勾选插件并点击 Install。
安装完成后,插件将自动生效,无需重启 Jenkins。
安装过程截图如下:
3. 在自由风格项目中使用 AnsiColor
- 在 Jenkins 主界面创建一个空的自由风格项目。
- 点击 Configure,在 Build Environment 部分勾选 Color ANSI Console Output。
- 在 Build Steps 中添加一个 Execute shell 步骤,并输入以下脚本:
#!/bin/bash
echo -e "\033[31;1m Hello world \033[0m"
这段脚本会在控制台输出红色的 "Hello world"。
- 点击 Save 保存配置,然后运行任务。
运行结果如下图所示:
✅ 输出成功显示为红色,说明插件已生效。
4. 在 Pipeline 中使用 AnsiColor
4.1. 在 Step 中使用颜色映射
创建一个 Pipeline 项目,然后在 Pipeline 配置中添加如下 Groovy 脚本:
pipeline {
agent any
stages {
stage('demo') {
steps {
// 使用 xterm 颜色映射
ansiColor('xterm') {
echo "\033[31;1m Executing demo stage: \033[0m"
}
echo "\033[31;1m command-1 \033[0m"
echo "\033[31;1m command-2 \033[0m"
}
}
}
}
运行后,只有 Executing demo stage
这行使用了红色,后续的 command-1
和 command-2
未使用颜色插件。
输出结果如下图:
✅ 第一行显示为红色,说明插件已按预期生效。
4.2. 在一个步骤中使用多个颜色映射
Jenkins Pipeline 支持在同一个步骤中使用多个 ansiColor
块来切换不同的颜色映射。例如:
pipeline {
agent any
stages {
stage('demo') {
steps {
ansiColor('xterm') {
echo "\033[31;1m Executing demo stage: \033[0m"
}
ansiColor('vga') {
echo "\033[31;1m command-1 \033[0m"
}
echo "\033[31;1m command-2 \033[0m"
}
}
}
}
运行结果如下:
✅ 不同的 ansiColor
块应用了不同的颜色映射,效果明显。
4.3. 为整个流水线设置颜色映射
如果希望整个 Pipeline 使用统一的颜色映射,可以使用 options
来统一配置:
pipeline {
agent any
options {
ansiColor('xterm')
}
stages {
stage('demo') {
steps {
echo "\033[31;1m Executing demo stage: \033[0m"
echo "\033[31;1m command-1 \033[0m"
echo "\033[31;1m command-2 \033[0m"
}
}
}
}
运行结果如下:
✅ 所有 echo
输出都应用了 xterm
颜色映射。
4.4. 在 Jenkins 控制器级别设置全局颜色映射
你还可以在 Jenkins 全局设置中为所有构建任务设置默认颜色映射:
- 进入 Dashboard -> Manage Jenkins -> System。
- 找到 ANSI Color 部分,点击 Advanced。
- 在 Global color map for all builds 输入框中填写颜色映射名称,例如
xterm
。
然后运行一个未显式配置 ansiColor
的 Pipeline:
pipeline {
agent any
stages {
stage('demo') {
steps {
echo "\033[31;1m Executing demo stage: \033[0m"
echo "\033[31;1m command-1 \033[0m"
echo "\033[31;1m command-2 \033[0m"
}
}
}
}
输出如下:
✅ 即使没有在 Pipeline 中使用 ansiColor
,也能看到彩色输出,说明全局设置已生效。
5. 自定义颜色映射
除了使用内置的颜色映射(如 xterm
和 vga
),Jenkins 还允许我们自定义或新增颜色映射:
- 进入 Dashboard -> Manage Jenkins -> System。
- 在 ANSI Color 部分点击 Advanced。
- 编辑现有颜色映射的配置,或点击 Add color map 添加新映射。
- 每个颜色映射可指定 8 个基本颜色和 8 个高亮颜色,使用 HTML 十六进制 格式。
✅ 这样你可以根据团队风格或 CI 环境定制日志输出样式,提高可读性。
6. 总结
本文详细介绍了如何在 Jenkins 中使用 AnsiColor 插件:
- ✅ 安装插件并配置自由风格项目;
- ✅ 在 Pipeline 中使用单个或多个颜色映射;
- ✅ 为整个流水线或全局设置颜色映射;
- ✅ 自定义颜色映射以满足个性化需求。
💡 小贴士: 在日志输出中使用颜色能显著提升可读性和调试效率,特别是在 CI/CD 场景中。但也要注意不要过度使用,避免造成视觉疲劳。
如果你正在优化 Jenkins 的日志体验,AnsiColor 绝对是一个值得尝试的插件。