22
votes

I'm unsure of what to do with declarative jenkins pipeline.

Following the example here: https://github.com/jenkinsci/ansicolor-plugin

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

Where does the above snippet go?

Here is my simple Jenkinsfile:

#!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
        '''
      }
    }
   }
 }

Does the wrapper go around stages? Does it go around each stage?

4

4 Answers

40
votes

Able to consolidate config in the options block like so

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

I put mine in each stage like this:

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

I put this in options section, apply for all stages and steps in pipeline

pipeline {
  agent any 

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

In a scripted jenkins pipeline, you can use it like this:

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