Jenkins 管道 ansicolor 控制台输出

Chi*_*get 5 jenkins jenkins-plugins jenkins-pipeline

我知道可以使用 AnsiColor 插件在控制台输出中显示颜色。我在下面测试了一个基本示例:

// This shows a simple build wrapper example, using the AnsiColor plugin.
node {
    // This displays colors using the 'xterm' ansi color map.
    ansiColor('xterm') {
        // Just some echoes to show the ANSI color.
        stage "\u001B[31mI'm Red\u001B[0m Now not"
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这个例子太基础了,基本上是硬编码的。是否可以利用 AnsiColor 对整个控制台输出进行颜色编码?例如,当我为 .NET 项目执行 Nuget 和 MSBuild 时,我希望控制台输出对警告、错误等进行颜色编码。

mas*_*eyb 5

所述AnsiColor插件“增加了支持ANSI转义序列,包括颜色,以控制台输出”(https://wiki.jenkins.io/display/JENKINS/AnsiColor+Plugin)。它只是作为一个包装器,以便 Jenkins 控制台输出正确显示颜色,插件本身不会向控制台输出添加 ANSI 转义序列或颜色。

一个很好的例子是Ansible 插件,它“可以使用参数 'colorized: true' 启用彩色输出”(https://wiki.jenkins.io/display/JENKINS/Ansible+Plugin#AnsiblePlugin-ColorizedOutput)。所述Ansible插件的彩色输出需要AnsiColor插件否则詹金斯控制台输出是不能显示的颜色。

没有AnsiColor 插件包装器的彩色输出:

stage('build'){
    node('master'){
        ...
        ansiblePlaybook colorized: true, installation: 'ansible2.5.11', inventory: 'inventory/hosts', playbook: 'playbooks/example.yml'
    }
}
Run Code Online (Sandbox Code Playgroud)

**Ansible 插件** 着色:无 **AnsiColor** 包装器为真

使用AnsiColor 插件包装器的彩色输出:

stage('build'){
    node('master'){
        ...
        ansiColor('xterm') {
            ansiblePlaybook colorized: true, installation: 'ansible2.5.11', inventory: 'inventory/hosts', playbook: 'playbooks/example.yml'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

**Ansible 插件** 着色:使用 **AnsiColor** 包装器为真