Jenkins管道Ansicolor控制台输出

时间:2018-11-07 22:31:35

标签: 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"
    }
}

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

1 个答案:

答案 0 :(得分:0)

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插件,否则Jenkins控制台输出将无法显示颜色。

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

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

**Ansible Plugin** colorized: true without **AnsiColor** wrapper

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

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

**Ansible Plugin** colorized: true with **AnsiColor** wrapper