1. 概述

Jenkins 是业界领先的自动化服务器,广泛用于通用任务的自动化,例如执行夜间构建、自动化测试套件、CI/CD 流水线、GitOps 任务等。

Jenkins 受欢迎的主要原因之一是其可扩展性。它通过插件机制扩展功能,提供了近乎无限的扩展可能。开源社区为 Jenkins 开发并维护了大量插件,其中就包括 AnsiColor 插件。该插件允许我们通过 ANSI 转义码 自定义控制台输出样式。

在本文中,我们将讨论 如何在 Jenkins 中安装、配置并使用 AnsiColor 插件,帮助你在日志输出中使用彩色文本,提高可读性和调试效率。


2. 安装 AnsiColor 插件

要安装 AnsiColor 插件,请按照以下步骤操作:

  1. 进入 Jenkins 主界面,点击 Dashboard -> Manage Jenkins -> Plugins
  2. 切换到 Available Plugins 标签页。
  3. 使用搜索框查找 AnsiColor
  4. 勾选插件并点击 Install

安装完成后,插件将自动生效,无需重启 Jenkins。

安装过程截图如下:

jenkins search plugin

jenkins install plugin


3. 在自由风格项目中使用 AnsiColor

  1. 在 Jenkins 主界面创建一个空的自由风格项目。
  2. 点击 Configure,在 Build Environment 部分勾选 Color ANSI Console Output
  3. Build Steps 中添加一个 Execute shell 步骤,并输入以下脚本:
#!/bin/bash

echo -e "\033[31;1m Hello world \033[0m"

这段脚本会在控制台输出红色的 "Hello world"。

  1. 点击 Save 保存配置,然后运行任务。

运行结果如下图所示:

03 jenkins freestyle project

✅ 输出成功显示为红色,说明插件已生效。


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-1command-2 未使用颜色插件。

输出结果如下图:

04 jenkins pipeline 01

✅ 第一行显示为红色,说明插件已按预期生效。


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"
            }
        }
    }
}

运行结果如下:

05 jenkins pipeline 02

✅ 不同的 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"
            }
        }
    }
}

运行结果如下:

06 jenkins pipeline 03

✅ 所有 echo 输出都应用了 xterm 颜色映射。


4.4. 在 Jenkins 控制器级别设置全局颜色映射

你还可以在 Jenkins 全局设置中为所有构建任务设置默认颜色映射:

  1. 进入 Dashboard -> Manage Jenkins -> System
  2. 找到 ANSI Color 部分,点击 Advanced
  3. 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"
            }
        }
    }
}

输出如下:

08 jenkins pipeline 03 1

✅ 即使没有在 Pipeline 中使用 ansiColor,也能看到彩色输出,说明全局设置已生效。


5. 自定义颜色映射

除了使用内置的颜色映射(如 xtermvga),Jenkins 还允许我们自定义或新增颜色映射:

  1. 进入 Dashboard -> Manage Jenkins -> System
  2. ANSI Color 部分点击 Advanced
  3. 编辑现有颜色映射的配置,或点击 Add color map 添加新映射。
  4. 每个颜色映射可指定 8 个基本颜色和 8 个高亮颜色,使用 HTML 十六进制 格式。

✅ 这样你可以根据团队风格或 CI 环境定制日志输出样式,提高可读性。


6. 总结

本文详细介绍了如何在 Jenkins 中使用 AnsiColor 插件:

  • ✅ 安装插件并配置自由风格项目;
  • ✅ 在 Pipeline 中使用单个或多个颜色映射;
  • ✅ 为整个流水线或全局设置颜色映射;
  • ✅ 自定义颜色映射以满足个性化需求。

💡 小贴士: 在日志输出中使用颜色能显著提升可读性和调试效率,特别是在 CI/CD 场景中。但也要注意不要过度使用,避免造成视觉疲劳。

如果你正在优化 Jenkins 的日志体验,AnsiColor 绝对是一个值得尝试的插件。


原始标题:How to Use the AnsiColor Plugin in Jenkins