在 Jenkins 管道中将 ansiColor Jenkins 插件的包装器放在哪里?

Where to put the wrapper for ansiColor Jenkins plugin in Jenkins Pipeline?

我不确定如何处理声明式 jenkins 管道。

按照此处的示例: https://github.com/jenkinsci/ansicolor-plugin

wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm']) {
  sh 'something that outputs ansi colored stuff'
}

上面的代码片段去哪儿了?

这是我的简单 Jenkins 文件:

#!groovy

pipeline {
  agent any

  // Set log rotation, timeout and timestamps in the console
  options {
    buildDiscarder(logRotator(numToKeepStr:'10'))
    timeout(time: 5, unit: 'MINUTES')
  }

  stages {

    stage('Initialize') {
      steps {

        sh '''
          java -version
          node --version
          npm --version
        '''
      }
    }
   }
 }

包装器是否绕过各个阶段?它会绕过每个阶段吗?

我把我的放在每个阶段是这样的:

stage('Initialize') {
  ansiColor('xterm') {
    // do stuff
  }
}

可以像这样在选项块中合并配置

options {
  buildDiscarder(logRotator(numToKeepStr:'10'))
  timeout(time: 5, unit: 'MINUTES')
  ansiColor('xterm')
}

我把这个放在选项部分,申请管道中的所有阶段和步骤

pipeline {
  agent any 

  options {
    ansiColor('xterm')
  }
...
}

在脚本化的 jenkins 管道中,您可以像这样使用它:

stage('Pre-Checks') {  
    timeout(time: 3, unit: 'MINUTES') {
        ansiColor('xterm') {
            sh 'python scripts/eod/pre_flight_check.py'
        }
    }
}